<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "http://bugs.gentoo.org/bugzilla.dtd">

<bugzilla version="2.22.7"
          urlbase="http://bugs.gentoo.org/"
          maintainer="bugzilla@gentoo.org"
>

    <bug>
          <bug_id>91817</bug_id>
          
          <creation_ts>2005-05-07 10:34 0000</creation_ts>
          <short_desc>dev-libs/elfutils: heap overflow</short_desc>
          <delta_ts>2005-07-02 14:48:13 0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>Gentoo Security</product>
          <component>Vulnerabilities</component>
          <version>unspecified</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <status_whiteboard>B2 [glsa] jaervosz</status_whiteboard>
          
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>91398</dependson>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>taviso@gentoo.org</reporter>
          <assigned_to>security@gentoo.org</assigned_to>
          

      

      
          <long_desc isprivate="0">
            <who>taviso@gentoo.org</who>
            <bug_when>2005-05-07 10:34:56 0000</bug_when>
            <thetext>see bug 91398 for details and testcase, elfutils is vulnerable to the same heap overflow.

the same fix used in bfd can be tweaked and applied, looks like the allocation happens around line 228 of elf_begin.c

  /* Determine the number of sections.  */
...
  /* We can now allocate the memory.  */
  elf = allocate_elf (fildes, map_address, offset, maxsize, cmd, parent,
              ELF_K_ELF, scncnt * sizeof (Elf_Scn));</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>taviso@gentoo.org</who>
            <bug_when>2005-05-07 10:36:22 0000</bug_when>
            <thetext>applying the same sanity test to the &quot;scncnt * sizeof (Elf_Scn)&quot; calculation should fix it.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>taviso@gentoo.org</who>
            <bug_when>2005-05-07 10:50:20 0000</bug_when>
            <thetext>Created an attachment (id=58287)
heap overflow patch

eu-readelf -a fails the testcase gracefully with this patch.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>taviso@gentoo.org</who>
            <bug_when>2005-05-12 13:36:52 0000</bug_when>
            <thetext>elfutils-0.94-r2 contains the patch.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>koon@gentoo.org</who>
            <bug_when>2005-05-13 01:37:19 0000</bug_when>
            <thetext>Arches, please test and mark stable 0.94-r2 or 0.97-r1, at your choice.
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>hansmi@gentoo.org</who>
            <bug_when>2005-05-13 05:03:33 0000</bug_when>
            <thetext>Stable on ppc.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>luckyduck@gentoo.org</who>
            <bug_when>2005-05-13 05:12:19 0000</bug_when>
            <thetext>0.94-r2 stable on amd64</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>gustavoz@gentoo.org</who>
            <bug_when>2005-05-13 06:25:25 0000</bug_when>
            <thetext>0.94-r2 sparc stable.
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>killerfox@gentoo.org</who>
            <bug_when>2005-05-13 08:17:42 0000</bug_when>
            <thetext>Stable on hppa</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>tester@gentoo.org</who>
            <bug_when>2005-05-14 10:52:04 0000</bug_when>
            <thetext>x86 stable. I went with 0.94-r2 too out of sheer conservatism</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>corsair@gentoo.org</who>
            <bug_when>2005-05-15 05:23:59 0000</bug_when>
            <thetext>stable on ppc64</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>kloeri@gentoo.org</who>
            <bug_when>2005-05-15 07:16:22 0000</bug_when>
            <thetext>Stable on alpha + ia64.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>solar@gentoo.org</who>
            <bug_when>2005-05-17 04:23:18 0000</bug_when>
            <thetext>Created an attachment (id=59110)
elfutils-0.108-robustify.patch

Jakub Jelinek (upstream) provides the following patch to address this and other
problems. I think it obsoletes the previous patch but I&apos;m not sure yet.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>solar@gentoo.org</who>
            <bug_when>2005-05-17 09:16:59 0000</bug_when>
            <thetext>0.108 is in the tree.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>solar@gentoo.org</who>
            <bug_when>2005-05-17 10:42:32 0000</bug_when>
            <thetext>added additional 0.108 incremental patch from Jakub which solves remaining 
regression failure with elfutils that we found.
This version or a 0.109 is what arches will want to mark stable in general if you 
want to use upstream fixes.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>jaervosz@gentoo.org</who>
            <bug_when>2005-05-19 07:57:49 0000</bug_when>
            <thetext>Arches please test and mark 0.108 stable. </thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>nigoro@gentoo.org</who>
            <bug_when>2005-05-19 10:48:18 0000</bug_when>
            <thetext>Stable on ppc64</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>hansmi@gentoo.org</who>
            <bug_when>2005-05-19 10:48:41 0000</bug_when>
            <thetext>Stable on ppc.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>killerfox@gentoo.org</who>
            <bug_when>2005-05-19 10:55:43 0000</bug_when>
            <thetext>Stable on hppa</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>luckyduck@gentoo.org</who>
            <bug_when>2005-05-19 10:58:06 0000</bug_when>
            <thetext>stable on amd64</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>gustavoz@gentoo.org</who>
            <bug_when>2005-05-19 11:07:48 0000</bug_when>
            <thetext>sparc stable.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>kloeri@gentoo.org</who>
            <bug_when>2005-05-20 11:49:54 0000</bug_when>
            <thetext>Stable on alpha + ia64.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>tester@gentoo.org</who>
            <bug_when>2005-05-22 14:25:15 0000</bug_when>
            <thetext>sorry for the delay.. stable on x86.. we really need more people on x86@</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>koon@gentoo.org</who>
            <bug_when>2005-05-29 03:17:44 0000</bug_when>
            <thetext>Waiting for binutils to be ready</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>solar@gentoo.org</who>
            <bug_when>2005-06-01 05:48:22 0000</bug_when>
            <thetext>Removed the old vuln ebuilds for the sake the the GLSA itself. 
All arches minus mips are currently marked stable. </thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>jaervosz@gentoo.org</who>
            <bug_when>2005-06-01 08:31:54 0000</bug_when>
            <thetext>GLSA 200506-01 
 
mips please remember to mark stable. </thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>hardave@gentoo.org</who>
            <bug_when>2005-07-02 14:48:13 0000</bug_when>
            <thetext>Stable on mips.</thetext>
          </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58287</attachid>
            <date>2005-05-07 10:50 0000</date>
            <desc>heap overflow patch</desc>
            <filename>elfutils-heap-overflow-sections.diff</filename>
            <type>text/plain</type>
            <data encoding="base64">ZGlmZiAtcnVOIGVsZnV0aWxzLTAuOTQub3JpZy9saWJlbGYvZWxmX2JlZ2luLmMgZWxmdXRpbHMt
MC45NC9saWJlbGYvZWxmX2JlZ2luLmMKLS0tIGVsZnV0aWxzLTAuOTQub3JpZy9saWJlbGYvZWxm
X2JlZ2luLmMJMjAwMy0xMi0yNSAxODozNDoyNy4wMDAwMDAwMDAgKzAwMDAKKysrIGVsZnV0aWxz
LTAuOTQvbGliZWxmL2VsZl9iZWdpbi5jCTIwMDUtMDUtMDcgMTg6NDM6NDEuMDAwMDAwMDAwICsw
MTAwCkBAIC0yMjAsNyArMjIwLDggQEAKIAogICAvKiBEZXRlcm1pbmUgdGhlIG51bWJlciBvZiBz
ZWN0aW9ucy4gICovCiAgIHNjbmNudCA9IGdldF9zaG51bSAobWFwX2FkZHJlc3MsIGVfaWRlbnQs
IGZpbGRlcywgb2Zmc2V0LCBtYXhzaXplKTsKLSAgaWYgKHNjbmNudCA9PSAoc2l6ZV90KSAtMWwp
CisgIGlmICgoc2NuY250ID09IChzaXplX3QpIC0xbCkgfHwKKwkJICAoc2l6ZW9mIChFbGZfU2Nu
KSAqIHNjbmNudCAvIHNpemVvZiAoRWxmX1NjbikgIT0gc2NuY250KSkKICAgICAvKiBDb3VsZCBu
b3QgZGV0ZXJtaW5lIHRoZSBudW1iZXIgb2Ygc2VjdGlvbnMuICAqLwogICAgIHJldHVybiBOVUxM
OwogCg==
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59110</attachid>
            <date>2005-05-17 04:23 0000</date>
            <desc>elfutils-0.108-robustify.patch</desc>
            <filename>elfutils-0.108-robustify.patch</filename>
            <type>text/plain</type>
            <data encoding="base64">MjAwNS0wNS0xNCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgpsaWJlbGYvCgkq
IGxpYmVsZlAuaCAoSU5WQUxJRF9ORFgpOiBEZWZpbmUuCgkqIGdlbGZfZ2V0ZHluLmMgKGdlbGZf
Z2V0ZHluKTogVXNlIGl0LiAgUmVtb3ZlIG5keCA8IDAgdGVzdCBpZiBhbnkuCgkqIGdlbGZfZ2V0
bGliLmMgKGdlbGZfZ2V0bGliKTogTGlrZXdpc2UuCgkqIGdlbGZfZ2V0bW92ZS5jIChnZWxmX2dl
dG1vdmUpOiBMaWtld2lzZS4KCSogZ2VsZl9nZXRyZWwuYyAoZ2VsZl9nZXRyZWwpOiBMaWtld2lz
ZS4KCSogZ2VsZl9nZXRyZWxhLmMgKGdlbGZfZ2V0cmVsYSk6IExpa2V3aXNlLgoJKiBnZWxmX2dl
dHN5bS5jIChnZWxmX2dldHN5bSk6IExpa2V3aXNlLgoJKiBnZWxmX2dldHN5bWluZm8uYyAoZ2Vs
Zl9nZXRzeW1pbmZvKTogTGlrZXdpc2UuCgkqIGdlbGZfZ2V0c3ltc2huZHguYyAoZ2VsZl9nZXRz
eW1zaG5keCk6IExpa2V3aXNlLgoJKiBnZWxmX2dldHZlcnN5bS5jIChnZWxmX2dldHZlcnN5bSk6
IExpa2V3aXNlLgoJKiBnZWxmX3VwZGF0ZV9keW4uYyAoZ2VsZl91cGRhdGVfZHluKTogTGlrZXdp
c2UuCgkqIGdlbGZfdXBkYXRlX2xpYi5jIChnZWxmX3VwZGF0ZV9saWIpOiBMaWtld2lzZS4KCSog
Z2VsZl91cGRhdGVfbW92ZS5jIChnZWxmX3VwZGF0ZV9tb3ZlKTogTGlrZXdpc2UuCgkqIGdlbGZf
dXBkYXRlX3JlbC5jIChnZWxmX3VwZGF0ZV9yZWwpOiBMaWtld2lzZS4KCSogZ2VsZl91cGRhdGVf
cmVsYS5jIChnZWxmX3VwZGF0ZV9yZWxhKTogTGlrZXdpc2UuCgkqIGdlbGZfdXBkYXRlX3N5bS5j
IChnZWxmX3VwZGF0ZV9zeW0pOiBMaWtld2lzZS4KCSogZ2VsZl91cGRhdGVfc3ltaW5mby5jIChn
ZWxmX3VwZGF0ZV9zeW1pbmZvKTogTGlrZXdpc2UuCgkqIGdlbGZfdXBkYXRlX3N5bXNobmR4LmMg
KGdlbGZfdXBkYXRlX3N5bXNobmR4KTogTGlrZXdpc2UuCgkqIGdlbGZfdXBkYXRlX3ZlcnN5bS5j
IChnZWxmX3VwZGF0ZV92ZXJzeW0pOiBMaWtld2lzZS4KCSogZWxmX25ld3Njbi5jIChlbGZfbmV3
c2NuKTogQ2hlY2sgZm9yIG92ZXJmbG93LgoJKiBlbGYzMl91cGRhdGVmaWxlLmMgKF9fZWxmdzIo
TElCRUxGQklUUyx1cGRhdGVtbWFwKSk6IExpa2V3aXNlLgoJKF9fZWxmdzIoTElCRUxGQklUUyx1
cGRhdGVmaWxlKSk6IExpa2V3aXNlLgoJKiBlbGZfYmVnaW4uYyAoZmlsZV9yZWFkX2VsZik6IExp
a2V3aXNlLgoJKiBlbGYzMl9uZXdwaGRyLmMgKGVsZncyKExJQkVMRkJJVFMsbmV3cGhkcikpOiBM
aWtld2lzZS4KCSogZWxmX2dldGFyc3ltLmMgKGVsZl9nZXRhcnN5bSk6IExpa2V3aXNlLgoJKiBl
bGYzMl9nZXRzaGRyLmMgKGVsZncyKExJQkVMRkJJVFMsZ2V0c2hkcikpOiBMaWtld2lzZS4Kc3Jj
LwoJKiBlbGZsaW50LmMgKHNlY3Rpb25fbmFtZSk6IFJldHVybiAiPGludmFsaWQ+IiBpbnN0ZWFk
IG9mCgljcmFzaGluZyBvbiBpbnZhbGlkIHNlY3Rpb24gbmFtZS4KCShjaGVja19zeW10YWIsIGlz
X3JlbF9keW4sIGNoZWNrX3JlbGEsIGNoZWNrX3JlbCwgY2hlY2tfZHluYW1pYywKCWNoZWNrX3N5
bXRhYl9zaG5keCwgY2hlY2tfaGFzaCwgY2hlY2tfdmVyc3ltKTogUm9idXN0aWZ5LgoKLS0tIGVs
ZnV0aWxzLTAuMTA4L2xpYmVsZi9nZWxmX2dldHJlbC5jLmpqCTIwMDQtMDEtMDUgMjE6NDU6MDUu
MDAwMDAwMDAwICswMTAwCisrKyBlbGZ1dGlscy0wLjEwOC9saWJlbGYvZ2VsZl9nZXRyZWwuYwky
MDA1LTA1LTE0IDAxOjMxOjI1LjAwMDAwMDAwMCArMDIwMApAQCAtMSw1ICsxLDUgQEAKIC8qIEdl
dCBSRUwgcmVsb2NhdGlvbiBpbmZvcm1hdGlvbiBhdCBnaXZlbiBpbmRleC4KLSAgIENvcHlyaWdo
dCAoQykgMjAwMCwgMjAwMSwgMjAwMiBSZWQgSGF0LCBJbmMuCisgICBDb3B5cmlnaHQgKEMpIDIw
MDAsIDIwMDEsIDIwMDIsIDIwMDUgUmVkIEhhdCwgSW5jLgogICAgV3JpdHRlbiBieSBVbHJpY2gg
RHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPiwgMjAwMC4KIAogICAgVGhpcyBwcm9ncmFtIGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKQEAg
LTM4LDEyICszOCw2IEBAIGdlbGZfZ2V0cmVsIChkYXRhLCBuZHgsIGRzdCkKICAgaWYgKGRhdGFf
c2NuID09IE5VTEwpCiAgICAgcmV0dXJuIE5VTEw7CiAKLSAgaWYgKHVubGlrZWx5IChuZHggPCAw
KSkKLSAgICB7Ci0gICAgICBfX2xpYmVsZl9zZXRlcnJubyAoRUxGX0VfSU5WQUxJRF9JTkRFWCk7
Ci0gICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0KICAgaWYgKHVubGlrZWx5IChkYXRhX3Njbi0+
ZC5kX3R5cGUgIT0gRUxGX1RfUkVMKSkKICAgICB7CiAgICAgICBfX2xpYmVsZl9zZXRlcnJubyAo
RUxGX0VfSU5WQUxJRF9IQU5ETEUpOwpAQCAtNjAsNyArNTQsOCBAQCBnZWxmX2dldHJlbCAoZGF0
YSwgbmR4LCBkc3QpCiAgIGlmIChzY24tPmVsZi0+Y2xhc3MgPT0gRUxGQ0xBU1MzMikKICAgICB7
CiAgICAgICAvKiBXZSBoYXZlIHRvIGNvbnZlcnQgdGhlIGRhdGEuICAqLwotICAgICAgaWYgKHVu
bGlrZWx5ICgobmR4ICsgMSkgKiBzaXplb2YgKEVsZjMyX1JlbCkgPiBkYXRhX3Njbi0+ZC5kX3Np
emUpKQorICAgICAgaWYgKElOVkFMSURfTkRYIChuZHgsIEVsZjMyX1JlbCkKKwkgIHx8IHVubGlr
ZWx5ICgobmR4ICsgMSkgKiBzaXplb2YgKEVsZjMyX1JlbCkgPiBkYXRhX3Njbi0+ZC5kX3NpemUp
KQogCXsKIAkgIF9fbGliZWxmX3NldGVycm5vIChFTEZfRV9JTlZBTElEX0lOREVYKTsKIAkgIHJl
c3VsdCA9IE5VTEw7CkBAIC04MCw3ICs3NSw4IEBAIGdlbGZfZ2V0cmVsIChkYXRhLCBuZHgsIGRz
dCkKICAgICB7CiAgICAgICAvKiBTaW1wbHkgY29weSB0aGUgZGF0YSBhZnRlciB3ZSBtYWRlIHN1
cmUgd2UgYXJlIGFjdHVhbGx5IGdldHRpbmcKIAkgY29ycmVjdCBkYXRhLiAgKi8KLSAgICAgIGlm
ICh1bmxpa2VseSAoKG5keCArIDEpICogc2l6ZW9mIChFbGY2NF9SZWwpID4gZGF0YV9zY24tPmQu
ZF9zaXplKSkKKyAgICAgIGlmIChJTlZBTElEX05EWCAobmR4LCBFbGY2NF9SZWwpCisJICB8fCB1
bmxpa2VseSAoKG5keCArIDEpICogc2l6ZW9mIChFbGY2NF9SZWwpID4gZGF0YV9zY24tPmQuZF9z
aXplKSkKIAl7CiAJICBfX2xpYmVsZl9zZXRlcnJubyAoRUxGX0VfSU5WQUxJRF9JTkRFWCk7CiAJ
ICByZXN1bHQgPSBOVUxMOwotLS0gZWxmdXRpbHMtMC4xMDgvbGliZWxmL2dlbGZfZ2V0c3ltLmMu
amoJMjAwNC0wMS0wNSAyMTo0NTowNS4wMDAwMDAwMDAgKzAxMDAKKysrIGVsZnV0aWxzLTAuMTA4
L2xpYmVsZi9nZWxmX2dldHN5bS5jCTIwMDUtMDUtMTQgMDE6MzE6MjUuMDAwMDAwMDAwICswMjAw
CkBAIC0xLDUgKzEsNSBAQAogLyogR2V0IHN5bWJvbCBpbmZvcm1hdGlvbiBmcm9tIHN5bWJvbCB0
YWJsZSBhdCB0aGUgZ2l2ZW4gaW5kZXguCi0gICBDb3B5cmlnaHQgKEMpIDE5OTksIDIwMDAsIDIw
MDEsIDIwMDIgUmVkIEhhdCwgSW5jLgorICAgQ29weXJpZ2h0IChDKSAxOTk5LCAyMDAwLCAyMDAx
LCAyMDAyLCAyMDA1IFJlZCBIYXQsIEluYy4KICAgIFdyaXR0ZW4gYnkgVWxyaWNoIERyZXBwZXIg
PGRyZXBwZXJAcmVkaGF0LmNvbT4sIDE5OTkuCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CkBAIC01Nyw3ICs1
Nyw4IEBAIGdlbGZfZ2V0c3ltIChkYXRhLCBuZHgsIGRzdCkKIAkgdGFibGUgZW50cmllcyBoYXMg
dG8gYmUgYWRvcHRlZC4gIFRoZSB1c2VyIGJldHRlciBoYXMgcHJvdmlkZWQKIAkgYSBidWZmZXIg
d2hlcmUgd2UgY2FuIHN0b3JlIHRoZSBpbmZvcm1hdGlvbi4gIFdoaWxlIGNvcHlpbmcgdGhlCiAJ
IGRhdGEgd2UgYXJlIGNvbnZlcnRpbmcgdGhlIGZvcm1hdC4gICovCi0gICAgICBpZiAodW5saWtl
bHkgKChuZHggKyAxKSAqIHNpemVvZiAoRWxmMzJfU3ltKSA+IGRhdGEtPmRfc2l6ZSkpCisgICAg
ICBpZiAoSU5WQUxJRF9ORFggKG5keCwgRWxmMzJfU3ltKQorCSAgfHwgdW5saWtlbHkgKChuZHgg
KyAxKSAqIHNpemVvZiAoRWxmMzJfU3ltKSA+IGRhdGEtPmRfc2l6ZSkpCiAJewogCSAgX19saWJl
bGZfc2V0ZXJybm8gKEVMRl9FX0lOVkFMSURfSU5ERVgpOwogCSAgZ290byBvdXQ7CkBAIC04Niw3
ICs4Nyw4IEBAIGdlbGZfZ2V0c3ltIChkYXRhLCBuZHgsIGRzdCkKIAogICAgICAgLyogVGhlIGRh
dGEgaXMgYWxyZWFkeSBpbiB0aGUgY29ycmVjdCBmb3JtLiAgSnVzdCBtYWtlIHN1cmUgdGhlCiAJ
IGluZGV4IGlzIE9LLiAgKi8KLSAgICAgIGlmICh1bmxpa2VseSAoKG5keCArIDEpICogc2l6ZW9m
IChHRWxmX1N5bSkgPiBkYXRhLT5kX3NpemUpKQorICAgICAgaWYgKElOVkFMSURfTkRYIChuZHgs
IEdFbGZfU3ltKQorCSAgfHwgdW5saWtlbHkgKChuZHggKyAxKSAqIHNpemVvZiAoR0VsZl9TeW0p
ID4gZGF0YS0+ZF9zaXplKSkKIAl7CiAJICBfX2xpYmVsZl9zZXRlcnJubyAoRUxGX0VfSU5WQUxJ
RF9JTkRFWCk7CiAJICBnb3RvIG91dDsKLS0tIGVsZnV0aWxzLTAuMTA4L2xpYmVsZi9nZWxmX3Vw
ZGF0ZV9zeW0uYy5qagkyMDA0LTAxLTA1IDIxOjQ1OjA1LjAwMDAwMDAwMCArMDEwMAorKysgZWxm
dXRpbHMtMC4xMDgvbGliZWxmL2dlbGZfdXBkYXRlX3N5bS5jCTIwMDUtMDUtMTQgMDE6MzE6MjUu
MDAwMDAwMDAwICswMjAwCkBAIC0xLDUgKzEsNSBAQAogLyogVXBkYXRlIHN5bWJvbCBpbmZvcm1h
dGlvbiBpbiBzeW1ib2wgdGFibGUgYXQgdGhlIGdpdmVuIGluZGV4LgotICAgQ29weXJpZ2h0IChD
KSAyMDAwLCAyMDAxLCAyMDAyIFJlZCBIYXQsIEluYy4KKyAgIENvcHlyaWdodCAoQykgMjAwMCwg
MjAwMSwgMjAwMiwgMjAwNSBSZWQgSGF0LCBJbmMuCiAgICBXcml0dGVuIGJ5IFVscmljaCBEcmVw
cGVyIDxkcmVwcGVyQHJlZGhhdC5jb20+LCAyMDAwLgogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQpAQCAtMzks
MTIgKzM5LDYgQEAgZ2VsZl91cGRhdGVfc3ltIChkYXRhLCBuZHgsIHNyYykKICAgaWYgKGRhdGEg
PT0gTlVMTCkKICAgICByZXR1cm4gMDsKIAotICBpZiAodW5saWtlbHkgKG5keCA8IDApKQotICAg
IHsKLSAgICAgIF9fbGliZWxmX3NldGVycm5vIChFTEZfRV9JTlZBTElEX0lOREVYKTsKLSAgICAg
IHJldHVybiAwOwotICAgIH0KLQogICBpZiAodW5saWtlbHkgKGRhdGFfc2NuLT5kLmRfdHlwZSAh
PSBFTEZfVF9TWU0pKQogICAgIHsKICAgICAgIC8qIFRoZSB0eXBlIG9mIHRoZSBkYXRhIGJldHRl
ciBzaG91bGQgbWF0Y2guICAqLwpAQCAtNjksNyArNjMsOCBAQCBnZWxmX3VwZGF0ZV9zeW0gKGRh
dGEsIG5keCwgc3JjKQogCX0KIAogICAgICAgLyogQ2hlY2sgd2hldGhlciB3ZSBoYXZlIHRvIHJl
c2l6ZSB0aGUgZGF0YSBidWZmZXIuICAqLwotICAgICAgaWYgKHVubGlrZWx5ICgobmR4ICsgMSkg
KiBzaXplb2YgKEVsZjMyX1N5bSkgPiBkYXRhX3Njbi0+ZC5kX3NpemUpKQorICAgICAgaWYgKElO
VkFMSURfTkRYIChuZHgsIEVsZjMyX1N5bSkKKwkgIHx8IHVubGlrZWx5ICgobmR4ICsgMSkgKiBz
aXplb2YgKEVsZjMyX1N5bSkgPiBkYXRhX3Njbi0+ZC5kX3NpemUpKQogCXsKIAkgIF9fbGliZWxm
X3NldGVycm5vIChFTEZfRV9JTlZBTElEX0lOREVYKTsKIAkgIGdvdG8gb3V0OwpAQCAtOTIsNyAr
ODcsOCBAQCBnZWxmX3VwZGF0ZV9zeW0gKGRhdGEsIG5keCwgc3JjKQogICBlbHNlCiAgICAgewog
ICAgICAgLyogQ2hlY2sgd2hldGhlciB3ZSBoYXZlIHRvIHJlc2l6ZSB0aGUgZGF0YSBidWZmZXIu
ICAqLwotICAgICAgaWYgKHVubGlrZWx5ICgobmR4ICsgMSkgKiBzaXplb2YgKEVsZjY0X1N5bSkg
PiBkYXRhX3Njbi0+ZC5kX3NpemUpKQorICAgICAgaWYgKElOVkFMSURfTkRYIChuZHgsIEVsZjY0
X1N5bSkKKwkgIHx8IHVubGlrZWx5ICgobmR4ICsgMSkgKiBzaXplb2YgKEVsZjY0X1N5bSkgPiBk
YXRhX3Njbi0+ZC5kX3NpemUpKQogCXsKIAkgIF9fbGliZWxmX3NldGVycm5vIChFTEZfRV9JTlZB
TElEX0lOREVYKTsKIAkgIGdvdG8gb3V0OwotLS0gZWxmdXRpbHMtMC4xMDgvbGliZWxmL2dlbGZf
Z2V0cmVsYS5jLmpqCTIwMDQtMDEtMDUgMjE6NDU6MDUuMDAwMDAwMDAwICswMTAwCisrKyBlbGZ1
dGlscy0wLjEwOC9saWJlbGYvZ2VsZl9nZXRyZWxhLmMJMjAwNS0wNS0xNCAwMTozMToyNS4wMDAw
MDAwMDAgKzAyMDAKQEAgLTEsNSArMSw1IEBACiAvKiBHZXQgUkVMQSByZWxvY2F0aW9uIGluZm9y
bWF0aW9uIGF0IGdpdmVuIGluZGV4LgotICAgQ29weXJpZ2h0IChDKSAyMDAwLCAyMDAxLCAyMDAy
IFJlZCBIYXQsIEluYy4KKyAgIENvcHlyaWdodCAoQykgMjAwMCwgMjAwMSwgMjAwMiwgMjAwNSBS
ZWQgSGF0LCBJbmMuCiAgICBXcml0dGVuIGJ5IFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQHJlZGhh
dC5jb20+LCAyMDAwLgogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQpAQCAtMzgsMTIgKzM4LDYgQEAgZ2VsZl9n
ZXRyZWxhIChkYXRhLCBuZHgsIGRzdCkKICAgaWYgKGRhdGFfc2NuID09IE5VTEwpCiAgICAgcmV0
dXJuIE5VTEw7CiAKLSAgaWYgKHVubGlrZWx5IChuZHggPCAwKSkKLSAgICB7Ci0gICAgICBfX2xp
YmVsZl9zZXRlcnJubyAoRUxGX0VfSU5WQUxJRF9JTkRFWCk7Ci0gICAgICByZXR1cm4gTlVMTDsK
LSAgICB9Ci0KICAgaWYgKHVubGlrZWx5IChkYXRhX3Njbi0+ZC5kX3R5cGUgIT0gRUxGX1RfUkVM
QSkpCiAgICAgewogICAgICAgX19saWJlbGZfc2V0ZXJybm8gKEVMRl9FX0lOVkFMSURfSEFORExF
KTsKQEAgLTYwLDcgKzU0LDggQEAgZ2VsZl9nZXRyZWxhIChkYXRhLCBuZHgsIGRzdCkKICAgaWYg
KHNjbi0+ZWxmLT5jbGFzcyA9PSBFTEZDTEFTUzMyKQogICAgIHsKICAgICAgIC8qIFdlIGhhdmUg
dG8gY29udmVydCB0aGUgZGF0YS4gICovCi0gICAgICBpZiAodW5saWtlbHkgKChuZHggKyAxKSAq
IHNpemVvZiAoRWxmMzJfUmVsYSkgPiBkYXRhX3Njbi0+ZC5kX3NpemUpKQorICAgICAgaWYgKElO
VkFMSURfTkRYIChuZHgsIEVsZjMyX1JlbGEpCisJICB8fCB1bmxpa2VseSAoKG5keCArIDEpICog
c2l6ZW9mIChFbGYzMl9SZWxhKSA+IGRhdGFfc2NuLT5kLmRfc2l6ZSkpCiAJewogCSAgX19saWJl
bGZfc2V0ZXJybm8gKEVMRl9FX0lOVkFMSURfSU5ERVgpOwogCSAgcmVzdWx0ID0gTlVMTDsKQEAg
LTgxLDcgKzc2LDggQEAgZ2VsZl9nZXRyZWxhIChkYXRhLCBuZHgsIGRzdCkKICAgICB7CiAgICAg
ICAvKiBTaW1wbHkgY29weSB0aGUgZGF0YSBhZnRlciB3ZSBtYWRlIHN1cmUgd2UgYXJlIGFjdHVh
bGx5IGdldHRpbmcKIAkgY29ycmVjdCBkYXRhLiAgKi8KLSAgICAgIGlmICh1bmxpa2VseSAoKG5k
eCArIDEpICogc2l6ZW9mIChFbGY2NF9SZWxhKSA+IGRhdGFfc2NuLT5kLmRfc2l6ZSkpCisgICAg
ICBpZiAoSU5WQUxJRF9ORFggKG5keCwgRWxmNjRfUmVsYSkKKwkgIHx8IHVubGlrZWx5ICgobmR4
ICsgMSkgKiBzaXplb2YgKEVsZjY0X1JlbGEpID4gZGF0YV9zY24tPmQuZF9zaXplKSkKIAl7CiAJ
ICBfX2xpYmVsZl9zZXRlcnJubyAoRUxGX0VfSU5WQUxJRF9JTkRFWCk7CiAJICByZXN1bHQgPSBO
VUxMOwotLS0gZWxmdXRpbHMtMC4xMDgvbGliZWxmL2dlbGZfdXBkYXRlX3N5bWluZm8uYy5qagky
MDA0LTAxLTA1IDIxOjQ1OjA1LjAwMDAwMDAwMCArMDEwMAorKysgZWxmdXRpbHMtMC4xMDgvbGli
ZWxmL2dlbGZfdXBkYXRlX3N5bWluZm8uYwkyMDA1LTA1LTE0IDAxOjMxOjI1LjAwMDAwMDAwMCAr
MDIwMApAQCAtMSw1ICsxLDUgQEAKIC8qIFVwZGF0ZSBhZGRpdGlvbmFsIHN5bWJvbCBpbmZvcm1h
dGlvbiBpbiBzeW1ib2wgdGFibGUgYXQgdGhlIGdpdmVuIGluZGV4LgotICAgQ29weXJpZ2h0IChD
KSAyMDAwLCAyMDAxLCAyMDAyIFJlZCBIYXQsIEluYy4KKyAgIENvcHlyaWdodCAoQykgMjAwMCwg
MjAwMSwgMjAwMiwgMjAwNSBSZWQgSGF0LCBJbmMuCiAgICBXcml0dGVuIGJ5IFVscmljaCBEcmVw
cGVyIDxkcmVwcGVyQHJlZGhhdC5jb20+LCAyMDAwLgogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQpAQCAtMzks
MTIgKzM5LDYgQEAgZ2VsZl91cGRhdGVfc3ltaW5mbyAoZGF0YSwgbmR4LCBzcmMpCiAgIGlmIChk
YXRhID09IE5VTEwpCiAgICAgcmV0dXJuIDA7CiAKLSAgaWYgKHVubGlrZWx5IChuZHggPCAwKSkK
LSAgICB7Ci0gICAgICBfX2xpYmVsZl9zZXRlcnJubyAoRUxGX0VfSU5WQUxJRF9JTkRFWCk7Ci0g
ICAgICByZXR1cm4gMDsKLSAgICB9Ci0KICAgaWYgKHVubGlrZWx5IChkYXRhX3Njbi0+ZC5kX3R5
cGUgIT0gRUxGX1RfU1lNSU5GTykpCiAgICAgewogICAgICAgLyogVGhlIHR5cGUgb2YgdGhlIGRh
dGEgYmV0dGVyIHNob3VsZCBtYXRjaC4gICovCkBAIC02MCw3ICs1NCw4IEBAIGdlbGZfdXBkYXRl
X3N5bWluZm8gKGRhdGEsIG5keCwgc3JjKQogICByd2xvY2tfd3Jsb2NrIChzY24tPmVsZi0+bG9j
ayk7CiAKICAgLyogQ2hlY2sgd2hldGhlciB3ZSBoYXZlIHRvIHJlc2l6ZSB0aGUgZGF0YSBidWZm
ZXIuICAqLwotICBpZiAodW5saWtlbHkgKChuZHggKyAxKSAqIHNpemVvZiAoR0VsZl9TeW1pbmZv
KSA+IGRhdGFfc2NuLT5kLmRfc2l6ZSkpCisgIGlmIChJTlZBTElEX05EWCAobmR4LCBHRWxmX1N5
bWluZm8pCisgICAgICB8fCB1bmxpa2VseSAoKG5keCArIDEpICogc2l6ZW9mIChHRWxmX1N5bWlu
Zm8pID4gZGF0YV9zY24tPmQuZF9zaXplKSkKICAgICB7CiAgICAgICBfX2xpYmVsZl9zZXRlcnJu
byAoRUxGX0VfSU5WQUxJRF9JTkRFWCk7CiAgICAgICBnb3RvIG91dDsKLS0tIGVsZnV0aWxzLTAu
MTA4L2xpYmVsZi9nZWxmX2dldHN5bWluZm8uYy5qagkyMDA0LTAxLTA1IDIxOjQ1OjA1LjAwMDAw
MDAwMCArMDEwMAorKysgZWxmdXRpbHMtMC4xMDgvbGliZWxmL2dlbGZfZ2V0c3ltaW5mby5jCTIw
MDUtMDUtMTQgMDE6MzE6MjUuMDAwMDAwMDAwICswMjAwCkBAIC0xLDUgKzEsNSBAQAogLyogR2V0
IGFkZGl0aW9uYWwgc3ltYm9sIGluZm9ybWF0aW9uIGZyb20gc3ltYm9sIHRhYmxlIGF0IHRoZSBn
aXZlbiBpbmRleC4KLSAgIENvcHlyaWdodCAoQykgMjAwMCwgMjAwMSwgMjAwMiBSZWQgSGF0LCBJ
bmMuCisgICBDb3B5cmlnaHQgKEMpIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDUgUmVkIEhhdCwgSW5j
LgogICAgV3JpdHRlbiBieSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPiwgMjAw
MC4KIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vciBtb2RpZnkKQEAgLTUxLDcgKzUxLDggQEAgZ2VsZl9nZXRzeW1pbmZvIChk
YXRhLCBuZHgsIGRzdCkKIAogICAvKiBUaGUgZGF0YSBpcyBhbHJlYWR5IGluIHRoZSBjb3JyZWN0
IGZvcm0uICBKdXN0IG1ha2Ugc3VyZSB0aGUKICAgICAgaW5kZXggaXMgT0suICAqLwotICBpZiAo
dW5saWtlbHkgKChuZHggKyAxKSAqIHNpemVvZiAoR0VsZl9TeW1pbmZvKSA+IGRhdGEtPmRfc2l6
ZSkpCisgIGlmIChJTlZBTElEX05EWCAobmR4LCBHRWxmX1N5bWluZm8pCisgICAgICB8fCB1bmxp
a2VseSAoKG5keCArIDEpICogc2l6ZW9mIChHRWxmX1N5bWluZm8pID4gZGF0YS0+ZF9zaXplKSkK
ICAgICB7CiAgICAgICBfX2xpYmVsZl9zZXRlcnJubyAoRUxGX0VfSU5WQUxJRF9JTkRFWCk7CiAg
ICAgICBnb3RvIG91dDsKLS0tIGVsZnV0aWxzLTAuMTA4L2xpYmVsZi9lbGZfbmV3c2NuLmMuamoJ
MjAwNC0wMS0wNSAyMTo0NTowNS4wMDAwMDAwMDAgKzAxMDAKKysrIGVsZnV0aWxzLTAuMTA4L2xp
YmVsZi9lbGZfbmV3c2NuLmMJMjAwNS0wNS0xNCAwMTozODozNS4wMDAwMDAwMDAgKzAyMDAKQEAg
LTEsNSArMSw1IEBACiAvKiBBcHBlbmQgbmV3IHNlY3Rpb24uCi0gICBDb3B5cmlnaHQgKEMpIDE5
OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIgUmVkIEhhdCwgSW5jLgorICAgQ29weXJpZ2h0IChD
KSAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLCAyMDA1IFJlZCBIYXQsIEluYy4KICAgIFdy
aXR0ZW4gYnkgVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAcmVkaGF0LmNvbT4sIDE5OTguCiAKICAg
IFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IgbW9kaWZ5CkBAIC03MSwxMyArNzEsMjEgQEAgZWxmX25ld3NjbiAoZWxmKQogICBlbHNl
CiAgICAgewogICAgICAgLyogV2UgbXVzdCBhbGxvY2F0ZSBhIG5ldyBlbGVtZW50LiAgKi8KLSAg
ICAgIEVsZl9TY25MaXN0ICpuZXdwOworICAgICAgRWxmX1Njbkxpc3QgKm5ld3AgPSBOVUxMOwog
CiAgICAgICBhc3NlcnQgKGVsZi0+c3RhdGUuZWxmLnNjbmluY3IgPiAwKTsKIAotICAgICAgbmV3
cCA9IChFbGZfU2NuTGlzdCAqKSBjYWxsb2MgKHNpemVvZiAoRWxmX1Njbkxpc3QpCi0JCQkJICAg
ICArICgoZWxmLT5zdGF0ZS5lbGYuc2NuaW5jciAqPSAyKQotCQkJCQkqIHNpemVvZiAoRWxmX1Nj
bikpLCAxKTsKKyAgICAgIGlmICgKKyNpZiBTSVpFX01BWCA8PSA0Mjk0OTY3Mjk1VQorCSAgbGlr
ZWx5IChlbGYtPnN0YXRlLmVsZi5zY25pbmNyCisJCSAgPCBTSVpFX01BWCAvIDIgLyBzaXplb2Yg
KEVsZl9TY24pIC0gc2l6ZW9mIChFbGZfU2NuTGlzdCkpCisjZWxzZQorCSAgMQorI2VuZGlmCisJ
ICApCisJbmV3cCA9IChFbGZfU2NuTGlzdCAqKSBjYWxsb2MgKHNpemVvZiAoRWxmX1Njbkxpc3Qp
CisJCQkJICAgICAgICsgKChlbGYtPnN0YXRlLmVsZi5zY25pbmNyICo9IDIpCisJCQkJCSAgKiBz
aXplb2YgKEVsZl9TY24pKSwgMSk7CiAgICAgICBpZiAobmV3cCA9PSBOVUxMKQogCXsKIAkgIF9f
bGliZWxmX3NldGVycm5vIChFTEZfRV9OT01FTSk7Ci0tLSBlbGZ1dGlscy0wLjEwOC9saWJlbGYv
Z2VsZl91cGRhdGVfbGliLmMuamoJMjAwNC0wMS0yMyAxOToyMzowMy4wMDAwMDAwMDAgKzAxMDAK
KysrIGVsZnV0aWxzLTAuMTA4L2xpYmVsZi9nZWxmX3VwZGF0ZV9saWIuYwkyMDA1LTA1LTE0IDAx
OjMxOjI1LjAwMDAwMDAwMCArMDIwMApAQCAtMSw1ICsxLDUgQEAKIC8qIFVwZGF0ZSBsaWJyYXJ5
IGluIHRhYmxlIGF0IHRoZSBnaXZlbiBpbmRleC4KLSAgIENvcHlyaWdodCAoQykgMjAwNCBSZWQg
SGF0LCBJbmMuCisgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgUmVkIEhhdCwgSW5jLgogICAg
V3JpdHRlbiBieSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPiwgMjAwNC4KIAog
ICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vciBtb2RpZnkKQEAgLTM1LDEyICszNSw2IEBAIGdlbGZfdXBkYXRlX2xpYiAoZGF0YSwg
bmR4LCBzcmMpCiAgIGlmIChkYXRhID09IE5VTEwpCiAgICAgcmV0dXJuIDA7CiAKLSAgaWYgKHVu
bGlrZWx5IChuZHggPCAwKSkKLSAgICB7Ci0gICAgICBfX2xpYmVsZl9zZXRlcnJubyAoRUxGX0Vf
SU5WQUxJRF9JTkRFWCk7Ci0gICAgICByZXR1cm4gMDsKLSAgICB9Ci0KICAgRWxmX0RhdGFfU2Nu
ICpkYXRhX3NjbiA9IChFbGZfRGF0YV9TY24gKikgZGF0YTsKICAgaWYgKHVubGlrZWx5IChkYXRh
X3Njbi0+ZC5kX3R5cGUgIT0gRUxGX1RfTElCKSkKICAgICB7CkBAIC01NCw3ICs0OCw4IEBAIGdl
bGZfdXBkYXRlX2xpYiAoZGF0YSwgbmR4LCBzcmMpCiAKICAgLyogQ2hlY2sgd2hldGhlciB3ZSBo
YXZlIHRvIHJlc2l6ZSB0aGUgZGF0YSBidWZmZXIuICAqLwogICBpbnQgcmVzdWx0ID0gMDsKLSAg
aWYgKHVubGlrZWx5ICgobmR4ICsgMSkgKiBzaXplb2YgKEVsZjY0X0xpYikgPiBkYXRhX3Njbi0+
ZC5kX3NpemUpKQorICBpZiAoSU5WQUxJRF9ORFggKG5keCwgRWxmNjRfTGliKQorICAgICAgfHwg
dW5saWtlbHkgKChuZHggKyAxKSAqIHNpemVvZiAoRWxmNjRfTGliKSA+IGRhdGFfc2NuLT5kLmRf
c2l6ZSkpCiAgICAgX19saWJlbGZfc2V0ZXJybm8gKEVMRl9FX0lOVkFMSURfSU5ERVgpOwogICBl
bHNlCiAgICAgewotLS0gZWxmdXRpbHMtMC4xMDgvbGliZWxmL2dlbGZfZ2V0bW92ZS5jLmpqCTIw
MDQtMDEtMDUgMjE6NDU6MDUuMDAwMDAwMDAwICswMTAwCisrKyBlbGZ1dGlscy0wLjEwOC9saWJl
bGYvZ2VsZl9nZXRtb3ZlLmMJMjAwNS0wNS0xNCAwMTozMToyNS4wMDAwMDAwMDAgKzAyMDAKQEAg
LTEsNSArMSw1IEBACiAvKiBHZXQgbW92ZSBzdHJ1Y3R1cmUgYXQgdGhlIGdpdmVuIGluZGV4Lgot
ICAgQ29weXJpZ2h0IChDKSAyMDAwLCAyMDAxLCAyMDAyIFJlZCBIYXQsIEluYy4KKyAgIENvcHly
aWdodCAoQykgMjAwMCwgMjAwMSwgMjAwMiwgMjAwNSBSZWQgSGF0LCBJbmMuCiAgICBXcml0dGVu
IGJ5IFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQHJlZGhhdC5jb20+LCAyMDAwLgogCiAgICBUaGlz
IHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
IG1vZGlmeQpAQCAtNTAsNyArNTAsOCBAQCBnZWxmX2dldG1vdmUgKGRhdGEsIG5keCwgZHN0KQog
CiAgIC8qIFRoZSBkYXRhIGlzIGFscmVhZHkgaW4gdGhlIGNvcnJlY3QgZm9ybS4gIEp1c3QgbWFr
ZSBzdXJlIHRoZQogICAgICBpbmRleCBpcyBPSy4gICovCi0gIGlmICh1bmxpa2VseSAoKG5keCAr
IDEpICogc2l6ZW9mIChHRWxmX01vdmUpID4gZGF0YS0+ZF9zaXplKSkKKyAgaWYgKElOVkFMSURf
TkRYIChuZHgsIEdFbGZfTW92ZSkKKyAgICAgIHx8IHVubGlrZWx5ICgobmR4ICsgMSkgKiBzaXpl
b2YgKEdFbGZfTW92ZSkgPiBkYXRhLT5kX3NpemUpKQogICAgIHsKICAgICAgIF9fbGliZWxmX3Nl
dGVycm5vIChFTEZfRV9JTlZBTElEX0lOREVYKTsKICAgICAgIGdvdG8gb3V0OwotLS0gZWxmdXRp
bHMtMC4xMDgvbGliZWxmL2VsZjMyX3VwZGF0ZWZpbGUuYy5qagkyMDA1LTAyLTA2IDEwOjE0OjUy
LjAwMDAwMDAwMCArMDEwMAorKysgZWxmdXRpbHMtMC4xMDgvbGliZWxmL2VsZjMyX3VwZGF0ZWZp
bGUuYwkyMDA1LTA1LTE0IDAwOjQ1OjAzLjAwMDAwMDAwMCArMDIwMApAQCAtMTY0LDYgKzE2NCw5
IEBAIF9fZWxmdzIoTElCRUxGQklUUyx1cGRhdGVtbWFwKSAoRWxmICplbGYKICAgLyogV3JpdGUg
YWxsIHRoZSBzZWN0aW9ucy4gIFdlbGwsIG9ubHkgdGhvc2Ugd2hpY2ggYXJlIG1vZGlmaWVkLiAg
Ki8KICAgaWYgKHNobnVtID4gMCkKICAgICB7CisgICAgICBpZiAodW5saWtlbHkgKHNobnVtID4g
U0laRV9NQVggLyBzaXplb2YgKEVsZl9TY24gKikpKQorCXJldHVybiAxOworCiAgICAgICBFbGZX
MihMSUJFTEZCSVRTLFNoZHIpICpzaGRyX2Rlc3Q7CiAgICAgICBFbGZfU2NuTGlzdCAqbGlzdCA9
ICZlbGYtPnN0YXRlLkVMRlcoZWxmLExJQkVMRkJJVFMpLnNjbnM7CiAgICAgICBFbGZfU2NuICoq
c2NucyA9IChFbGZfU2NuICoqKSBhbGxvY2EgKHNobnVtICogc2l6ZW9mIChFbGZfU2NuICopKTsK
QEAgLTQ2OCw2ICs0NzEsMTAgQEAgX19lbGZ3MihMSUJFTEZCSVRTLHVwZGF0ZWZpbGUpIChFbGYg
KmVsZgogICAvKiBXcml0ZSBhbGwgdGhlIHNlY3Rpb25zLiAgV2VsbCwgb25seSB0aG9zZSB3aGlj
aCBhcmUgbW9kaWZpZWQuICAqLwogICBpZiAoc2hudW0gPiAwKQogICAgIHsKKyAgICAgIGlmICh1
bmxpa2VseSAoc2hudW0gPiBTSVpFX01BWCAvIChzaXplb2YgKEVsZl9TY24gKikKKwkJCQkJKyBz
aXplb2YgKEVsZlcyKExJQkVMRkJJVFMsU2hkcikpKSkpCisJcmV0dXJuIDE7CisKICAgICAgIG9m
Zl90IHNoZHJfb2Zmc2V0ID0gZWxmLT5zdGFydF9vZmZzZXQgKyBlaGRyLT5lX3Nob2ZmOwogI2lm
IEVWX05VTSAhPSAyCiAgICAgICB4ZmN0X3Qgc2hkcl9mY3RwID0gX19lbGZfeGZjdHN0b21bX19s
aWJlbGZfdmVyc2lvbiAtIDFdW0VWX0NVUlJFTlQgLSAxXVtFTEZXKEVMRkNMQVNTLCBMSUJFTEZC
SVRTKSAtIDFdW0VMRl9UX1NIRFJdOwotLS0gZWxmdXRpbHMtMC4xMDgvbGliZWxmL2dlbGZfZ2V0
c3ltc2huZHguYy5qagkyMDA0LTAxLTA1IDIxOjQ1OjA1LjAwMDAwMDAwMCArMDEwMAorKysgZWxm
dXRpbHMtMC4xMDgvbGliZWxmL2dlbGZfZ2V0c3ltc2huZHguYwkyMDA1LTA1LTE0IDAxOjMxOjI1
LjAwMDAwMDAwMCArMDIwMApAQCAtMSw2ICsxLDYgQEAKIC8qIEdldCBzeW1ib2wgaW5mb3JtYXRp
b24gYW5kIHNlcGFyYXRlIHNlY3Rpb24gaW5kZXggZnJvbSBzeW1ib2wgdGFibGUKICAgIGF0IHRo
ZSBnaXZlbiBpbmRleC4KLSAgIENvcHlyaWdodCAoQykgMjAwMCwgMjAwMSwgMjAwMiBSZWQgSGF0
LCBJbmMuCisgICBDb3B5cmlnaHQgKEMpIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDUgUmVkIEhhdCwg
SW5jLgogICAgV3JpdHRlbiBieSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPiwg
MjAwMC4KIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKQEAgLTU3LDcgKzU3LDkgQEAgZ2VsZl9nZXRzeW1zaG5k
eCAoc3ltZGF0YSwgc2huZHhkYXRhLCBuZAogICAgICBzZWN0aW9uIGluZGV4IHRhYmxlLiAgKi8K
ICAgaWYgKGxpa2VseSAoc2huZHhkYXRhX3NjbiAhPSBOVUxMKSkKICAgICB7Ci0gICAgICBpZiAo
dW5saWtlbHkgKChuZHggKyAxKSAqIHNpemVvZiAoRWxmMzJfV29yZCkgPiBzaG5keGRhdGFfc2Nu
LT5kLmRfc2l6ZSkpCisgICAgICBpZiAoSU5WQUxJRF9ORFggKG5keCwgRWxmMzJfV29yZCkKKwkg
IHx8IHVubGlrZWx5ICgobmR4ICsgMSkgKiBzaXplb2YgKEVsZjMyX1dvcmQpCisJCSAgICAgICA+
IHNobmR4ZGF0YV9zY24tPmQuZF9zaXplKSkKIAl7CiAJICBfX2xpYmVsZl9zZXRlcnJubyAoRUxG
X0VfSU5WQUxJRF9JTkRFWCk7CiAJICBnb3RvIG91dDsKQEAgLTc3LDcgKzc5LDggQEAgZ2VsZl9n
ZXRzeW1zaG5keCAoc3ltZGF0YSwgc2huZHhkYXRhLCBuZAogCSB0YWJsZSBlbnRyaWVzIGhhcyB0
byBiZSBhZG9wdGVkLiAgVGhlIHVzZXIgYmV0dGVyIGhhcyBwcm92aWRlZAogCSBhIGJ1ZmZlciB3
aGVyZSB3ZSBjYW4gc3RvcmUgdGhlIGluZm9ybWF0aW9uLiAgV2hpbGUgY29weWluZyB0aGUKIAkg
ZGF0YSB3ZSBhcmUgY29udmVydGluZyB0aGUgZm9ybWF0LiAgKi8KLSAgICAgIGlmICh1bmxpa2Vs
eSAoKG5keCArIDEpICogc2l6ZW9mIChFbGYzMl9TeW0pID4gc3ltZGF0YS0+ZF9zaXplKSkKKyAg
ICAgIGlmIChJTlZBTElEX05EWCAobmR4LCBFbGYzMl9TeW0pCisJICB8fCB1bmxpa2VseSAoKG5k
eCArIDEpICogc2l6ZW9mIChFbGYzMl9TeW0pID4gc3ltZGF0YS0+ZF9zaXplKSkKIAl7CiAJICBf
X2xpYmVsZl9zZXRlcnJubyAoRUxGX0VfSU5WQUxJRF9JTkRFWCk7CiAJICBnb3RvIG91dDsKQEAg
LTEwNiw3ICsxMDksOCBAQCBnZWxmX2dldHN5bXNobmR4IChzeW1kYXRhLCBzaG5keGRhdGEsIG5k
CiAKICAgICAgIC8qIFRoZSBkYXRhIGlzIGFscmVhZHkgaW4gdGhlIGNvcnJlY3QgZm9ybS4gIEp1
c3QgbWFrZSBzdXJlIHRoZQogCSBpbmRleCBpcyBPSy4gICovCi0gICAgICBpZiAodW5saWtlbHkg
KChuZHggKyAxKSAqIHNpemVvZiAoR0VsZl9TeW0pID4gc3ltZGF0YS0+ZF9zaXplKSkKKyAgICAg
IGlmIChJTlZBTElEX05EWCAobmR4LCBHRWxmX1N5bSkKKwkgIHx8IHVubGlrZWx5ICgobmR4ICsg
MSkgKiBzaXplb2YgKEdFbGZfU3ltKSA+IHN5bWRhdGEtPmRfc2l6ZSkpCiAJewogCSAgX19saWJl
bGZfc2V0ZXJybm8gKEVMRl9FX0lOVkFMSURfSU5ERVgpOwogCSAgZ290byBvdXQ7Ci0tLSBlbGZ1
dGlscy0wLjEwOC9saWJlbGYvZ2VsZl91cGRhdGVfbW92ZS5jLmpqCTIwMDQtMDEtMDUgMjE6NDU6
MDUuMDAwMDAwMDAwICswMTAwCisrKyBlbGZ1dGlscy0wLjEwOC9saWJlbGYvZ2VsZl91cGRhdGVf
bW92ZS5jCTIwMDUtMDUtMTQgMDE6MzE6MjUuMDAwMDAwMDAwICswMjAwCkBAIC0xLDUgKzEsNSBA
QAogLyogVXBkYXRlIG1vdmUgc3RydWN0dXJlIGF0IHRoZSBnaXZlbiBpbmRleC4KLSAgIENvcHly
aWdodCAoQykgMjAwMCwgMjAwMSwgMjAwMiBSZWQgSGF0LCBJbmMuCisgICBDb3B5cmlnaHQgKEMp
IDIwMDAsIDIwMDEsIDIwMDIsIDIwMDUgUmVkIEhhdCwgSW5jLgogICAgV3JpdHRlbiBieSBVbHJp
Y2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPiwgMjAwMC4KIAogICAgVGhpcyBwcm9ncmFt
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkK
QEAgLTQyLDcgKzQyLDcgQEAgZ2VsZl91cGRhdGVfbW92ZSAoZGF0YSwgbmR4LCBzcmMpCiAgIGFz
c2VydCAoc2l6ZW9mIChHRWxmX01vdmUpID09IHNpemVvZiAoRWxmNjRfTW92ZSkpOwogCiAgIC8q
IENoZWNrIHdoZXRoZXIgd2UgaGF2ZSB0byByZXNpemUgdGhlIGRhdGEgYnVmZmVyLiAgKi8KLSAg
aWYgKHVubGlrZWx5IChuZHggPCAwKQorICBpZiAoSU5WQUxJRF9ORFggKG5keCwgR0VsZl9Nb3Zl
KQogICAgICAgfHwgdW5saWtlbHkgKChuZHggKyAxKSAqIHNpemVvZiAoR0VsZl9Nb3ZlKSA+IGRh
dGFfc2NuLT5kLmRfc2l6ZSkpCiAgICAgewogICAgICAgX19saWJlbGZfc2V0ZXJybm8gKEVMRl9F
X0lOVkFMSURfSU5ERVgpOwotLS0gZWxmdXRpbHMtMC4xMDgvbGliZWxmL2dlbGZfdXBkYXRlX2R5
bi5jLmpqCTIwMDQtMDEtMDUgMjE6NDU6MDUuMDAwMDAwMDAwICswMTAwCisrKyBlbGZ1dGlscy0w
LjEwOC9saWJlbGYvZ2VsZl91cGRhdGVfZHluLmMJMjAwNS0wNS0xNCAwMTozMToyNS4wMDAwMDAw
MDAgKzAyMDAKQEAgLTEsNSArMSw1IEBACiAvKiBVcGRhdGUgaW5mb3JtYXRpb24gaW4gZHluYW1p
YyB0YWJsZSBhdCB0aGUgZ2l2ZW4gaW5kZXguCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAsIDIwMDEs
IDIwMDIgUmVkIEhhdCwgSW5jLgorICAgQ29weXJpZ2h0IChDKSAyMDAwLCAyMDAxLCAyMDAyLCAy
MDA1IFJlZCBIYXQsIEluYy4KICAgIFdyaXR0ZW4gYnkgVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJA
cmVkaGF0LmNvbT4sIDIwMDAuCiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CkBAIC0zOCwxMiArMzgsNiBAQCBn
ZWxmX3VwZGF0ZV9keW4gKGRhdGEsIG5keCwgc3JjKQogICBpZiAoZGF0YSA9PSBOVUxMKQogICAg
IHJldHVybiAwOwogCi0gIGlmICh1bmxpa2VseSAobmR4IDwgMCkpCi0gICAgewotICAgICAgX19s
aWJlbGZfc2V0ZXJybm8gKEVMRl9FX0lOVkFMSURfSU5ERVgpOwotICAgICAgcmV0dXJuIDA7Ci0g
ICAgfQotCiAgIGlmICh1bmxpa2VseSAoZGF0YV9zY24tPmQuZF90eXBlICE9IEVMRl9UX0RZTikp
CiAgICAgewogICAgICAgLyogVGhlIHR5cGUgb2YgdGhlIGRhdGEgYmV0dGVyIHNob3VsZCBtYXRj
aC4gICovCkBAIC02OSw3ICs2Myw4IEBAIGdlbGZfdXBkYXRlX2R5biAoZGF0YSwgbmR4LCBzcmMp
CiAJfQogCiAgICAgICAvKiBDaGVjayB3aGV0aGVyIHdlIGhhdmUgdG8gcmVzaXplIHRoZSBkYXRh
IGJ1ZmZlci4gICovCi0gICAgICBpZiAodW5saWtlbHkgKChuZHggKyAxKSAqIHNpemVvZiAoRWxm
MzJfRHluKSA+IGRhdGFfc2NuLT5kLmRfc2l6ZSkpCisgICAgICBpZiAoSU5WQUxJRF9ORFggKG5k
eCwgRWxmMzJfRHluKQorCSAgfHwgdW5saWtlbHkgKChuZHggKyAxKSAqIHNpemVvZiAoRWxmMzJf
RHluKSA+IGRhdGFfc2NuLT5kLmRfc2l6ZSkpCiAJewogCSAgX19saWJlbGZfc2V0ZXJybm8gKEVM
Rl9FX0lOVkFMSURfSU5ERVgpOwogCSAgZ290byBvdXQ7CkBAIC04Myw3ICs3OCw4IEBAIGdlbGZf
dXBkYXRlX2R5biAoZGF0YSwgbmR4LCBzcmMpCiAgIGVsc2UKICAgICB7CiAgICAgICAvKiBDaGVj
ayB3aGV0aGVyIHdlIGhhdmUgdG8gcmVzaXplIHRoZSBkYXRhIGJ1ZmZlci4gICovCi0gICAgICBp
ZiAodW5saWtlbHkgKChuZHggKyAxKSAqIHNpemVvZiAoRWxmNjRfRHluKSA+IGRhdGFfc2NuLT5k
LmRfc2l6ZSkpCisgICAgICBpZiAoSU5WQUxJRF9ORFggKG5keCwgRWxmNjRfRHluKQorCSAgfHwg
dW5saWtlbHkgKChuZHggKyAxKSAqIHNpemVvZiAoRWxmNjRfRHluKSA+IGRhdGFfc2NuLT5kLmRf
c2l6ZSkpCiAJewogCSAgX19saWJlbGZfc2V0ZXJybm8gKEVMRl9FX0lOVkFMSURfSU5ERVgpOwog
CSAgZ290byBvdXQ7Ci0tLSBlbGZ1dGlscy0wLjEwOC9saWJlbGYvZWxmX2JlZ2luLmMuamoJMjAw
NS0wNS0wOSAwNjozMzo0OS4wMDAwMDAwMDAgKzAyMDAKKysrIGVsZnV0aWxzLTAuMTA4L2xpYmVs
Zi9lbGZfYmVnaW4uYwkyMDA1LTA1LTE0IDAwOjI5OjM0LjAwMDAwMDAwMCArMDIwMApAQCAtMjIw
LDcgKzIyMCw3IEBAIGZpbGVfcmVhZF9lbGYgKGludCBmaWxkZXMsIHZvaWQgKm1hcF9hZGQKIAog
ICAvKiBEZXRlcm1pbmUgdGhlIG51bWJlciBvZiBzZWN0aW9ucy4gICovCiAgIHNjbmNudCA9IGdl
dF9zaG51bSAobWFwX2FkZHJlc3MsIGVfaWRlbnQsIGZpbGRlcywgb2Zmc2V0LCBtYXhzaXplKTsK
LSAgaWYgKHNjbmNudCA9PSAoc2l6ZV90KSAtMWwpCisgIGlmIChzY25jbnQgPT0gKHNpemVfdCkg
LTFsIHx8IHNjbmNudCA+IFNJWkVfTUFYIC8gc2l6ZW9mIChFbGZfU2NuKSkKICAgICAvKiBDb3Vs
ZCBub3QgZGV0ZXJtaW5lIHRoZSBudW1iZXIgb2Ygc2VjdGlvbnMuICAqLwogICAgIHJldHVybiBO
VUxMOwogCi0tLSBlbGZ1dGlscy0wLjEwOC9saWJlbGYvZ2VsZl9nZXR2ZXJzeW0uYy5qagkyMDA0
LTAxLTA1IDIxOjQ1OjA1LjAwMDAwMDAwMCArMDEwMAorKysgZWxmdXRpbHMtMC4xMDgvbGliZWxm
L2dlbGZfZ2V0dmVyc3ltLmMJMjAwNS0wNS0xNCAwMTozMToyNS4wMDAwMDAwMDAgKzAyMDAKQEAg
LTEsNSArMSw1IEBACiAvKiBHZXQgc3ltYm9sIHZlcnNpb24gaW5mb3JtYXRpb24gYXQgdGhlIGdp
dmVuIGluZGV4LgotICAgQ29weXJpZ2h0IChDKSAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyIFJlZCBI
YXQsIEluYy4KKyAgIENvcHlyaWdodCAoQykgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwgMjAwNSBS
ZWQgSGF0LCBJbmMuCiAgICBXcml0dGVuIGJ5IFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQHJlZGhh
dC5jb20+LCAxOTk5LgogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQpAQCAtNTksNyArNTksOCBAQCBnZWxmX2dl
dHZlcnN5bSAoZGF0YSwgbmR4LCBkc3QpCiAKICAgLyogVGhlIGRhdGEgaXMgYWxyZWFkeSBpbiB0
aGUgY29ycmVjdCBmb3JtLiAgSnVzdCBtYWtlIHN1cmUgdGhlCiAgICAgIGluZGV4IGlzIE9LLiAg
Ki8KLSAgaWYgKHVubGlrZWx5ICgobmR4ICsgMSkgKiBzaXplb2YgKEdFbGZfVmVyc3ltKSA+IGRh
dGEtPmRfc2l6ZSkpCisgIGlmIChJTlZBTElEX05EWCAobmR4LCBHRWxmX1ZlcnN5bSkKKyAgICAg
IHx8IHVubGlrZWx5ICgobmR4ICsgMSkgKiBzaXplb2YgKEdFbGZfVmVyc3ltKSA+IGRhdGEtPmRf
c2l6ZSkpCiAgICAgewogICAgICAgX19saWJlbGZfc2V0ZXJybm8gKEVMRl9FX0lOVkFMSURfSU5E
RVgpOwogICAgICAgcmVzdWx0ID0gTlVMTDsKLS0tIGVsZnV0aWxzLTAuMTA4L2xpYmVsZi9lbGYz
Ml9uZXdwaGRyLmMuamoJMjAwNC0wMS0wNSAyMTo0NTowNS4wMDAwMDAwMDAgKzAxMDAKKysrIGVs
ZnV0aWxzLTAuMTA4L2xpYmVsZi9lbGYzMl9uZXdwaGRyLmMJMjAwNS0wNS0xNCAwMToxNzo1My4w
MDAwMDAwMDAgKzAyMDAKQEAgLTEsNSArMSw1IEBACiAvKiBDcmVhdGUgbmV3IEVMRiBwcm9ncmFt
IGhlYWRlciB0YWJsZS4KLSAgIENvcHlyaWdodCAoQykgMTk5OSwgMjAwMCwgMjAwMiBSZWQgSGF0
LCBJbmMuCisgICBDb3B5cmlnaHQgKEMpIDE5OTksIDIwMDAsIDIwMDIsIDIwMDUgUmVkIEhhdCwg
SW5jLgogICAgV3JpdHRlbiBieSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPiwg
MTk5OC4KIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKQEAgLTkxLDYgKzkxLDEyIEBAIGVsZncyKExJQkVMRkJJ
VFMsbmV3cGhkcikgKGVsZiwgY291bnQpCiAgIGVsc2UgaWYgKGVsZi0+c3RhdGUuRUxGVyhlbGYs
TElCRUxGQklUUykuZWhkci0+ZV9waG51bSAhPSBjb3VudAogCSAgIHx8IGVsZi0+c3RhdGUuRUxG
VyhlbGYsTElCRUxGQklUUykucGhkciA9PSBOVUxMKQogICAgIHsKKyAgICAgIGlmICh1bmxpa2Vs
eSAoY291bnQgPiBTSVpFX01BWCAvIHNpemVvZiAoRWxmVzIoTElCRUxGQklUUyxQaGRyKSkpKQor
CXsKKwkgIHJlc3VsdCA9IE5VTEw7CisJICBnb3RvIG91dDsKKwl9CisKICAgICAgIC8qIEFsbG9j
YXRlIGEgbmV3IHByb2dyYW0gaGVhZGVyIHdpdGggdGhlIGFwcHJvcHJpYXRlIG51bWJlciBvZgog
CSBlbGVtZW50cy4gICovCiAgICAgICByZXN1bHQgPSAoRWxmVzIoTElCRUxGQklUUyxQaGRyKSAq
KQotLS0gZWxmdXRpbHMtMC4xMDgvbGliZWxmL2dlbGZfZ2V0ZHluLmMuamoJMjAwNC0wMS0wNSAy
MTo0NTowNS4wMDAwMDAwMDAgKzAxMDAKKysrIGVsZnV0aWxzLTAuMTA4L2xpYmVsZi9nZWxmX2dl
dGR5bi5jCTIwMDUtMDUtMTQgMDE6MzE6MjUuMDAwMDAwMDAwICswMjAwCkBAIC0xLDUgKzEsNSBA
QAogLyogR2V0IGluZm9ybWF0aW9uIGZyb20gZHluYW1pYyB0YWJsZSBhdCB0aGUgZ2l2ZW4gaW5k
ZXguCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAsIDIwMDEsIDIwMDIgUmVkIEhhdCwgSW5jLgorICAg
Q29weXJpZ2h0IChDKSAyMDAwLCAyMDAxLCAyMDAyLCAyMDA1IFJlZCBIYXQsIEluYy4KICAgIFdy
aXR0ZW4gYnkgVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAcmVkaGF0LmNvbT4sIDIwMDAuCiAKICAg
IFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IgbW9kaWZ5CkBAIC02MCw3ICs2MCw4IEBAIGdlbGZfZ2V0ZHluIChkYXRhLCBuZHgsIGRz
dCkKIAkgdGFibGUgZW50cmllcyBoYXMgdG8gYmUgYWRvcHRlZC4gIFRoZSB1c2VyIGJldHRlciBo
YXMgcHJvdmlkZWQKIAkgYSBidWZmZXIgd2hlcmUgd2UgY2FuIHN0b3JlIHRoZSBpbmZvcm1hdGlv
bi4gIFdoaWxlIGNvcHlpbmcgdGhlCiAJIGRhdGEgd2UgYXJlIGNvbnZlcnRpbmcgdGhlIGZvcm1h
dC4gICovCi0gICAgICBpZiAodW5saWtlbHkgKChuZHggKyAxKSAqIHNpemVvZiAoRWxmMzJfRHlu
KSA+IGRhdGFfc2NuLT5kLmRfc2l6ZSkpCisgICAgICBpZiAoSU5WQUxJRF9ORFggKG5keCwgRWxm
MzJfRHluKQorCSAgfHwgdW5saWtlbHkgKChuZHggKyAxKSAqIHNpemVvZiAoRWxmMzJfRHluKSA+
IGRhdGFfc2NuLT5kLmRfc2l6ZSkpCiAJewogCSAgX19saWJlbGZfc2V0ZXJybm8gKEVMRl9FX0lO
VkFMSURfSU5ERVgpOwogCSAgZ290byBvdXQ7CkBAIC04MSw3ICs4Miw4IEBAIGdlbGZfZ2V0ZHlu
IChkYXRhLCBuZHgsIGRzdCkKIAogICAgICAgLyogVGhlIGRhdGEgaXMgYWxyZWFkeSBpbiB0aGUg
Y29ycmVjdCBmb3JtLiAgSnVzdCBtYWtlIHN1cmUgdGhlCiAJIGluZGV4IGlzIE9LLiAgKi8KLSAg
ICAgIGlmICh1bmxpa2VseSAoKG5keCArIDEpICogc2l6ZW9mIChHRWxmX0R5bikgPiBkYXRhX3Nj
bi0+ZC5kX3NpemUpKQorICAgICAgaWYgKElOVkFMSURfTkRYIChuZHgsIEdFbGZfRHluKQorCSAg
fHwgdW5saWtlbHkgKChuZHggKyAxKSAqIHNpemVvZiAoR0VsZl9EeW4pID4gZGF0YV9zY24tPmQu
ZF9zaXplKSkKIAl7CiAJICBfX2xpYmVsZl9zZXRlcnJubyAoRUxGX0VfSU5WQUxJRF9JTkRFWCk7
CiAJICBnb3RvIG91dDsKLS0tIGVsZnV0aWxzLTAuMTA4L2xpYmVsZi9lbGZfZ2V0YXJzeW0uYy5q
agkyMDA1LTAyLTA2IDEwOjE0OjUyLjAwMDAwMDAwMCArMDEwMAorKysgZWxmdXRpbHMtMC4xMDgv
bGliZWxmL2VsZl9nZXRhcnN5bS5jCTIwMDUtMDUtMTQgMDE6Mzc6NDcuMDAwMDAwMDAwICswMjAw
CkBAIC0xNDQsNiArMTQ0LDkgQEAgZWxmX2dldGFyc3ltIChlbGYsIHB0cikKICAgICAgIHNpemVf
dCBpbmRleF9zaXplID0gYXRvbCAodG1wYnVmKTsKIAogICAgICAgaWYgKFNBUk1BRyArIHNpemVv
ZiAoc3RydWN0IGFyX2hkcikgKyBpbmRleF9zaXplID4gZWxmLT5tYXhpbXVtX3NpemUKKyNpZiBT
SVpFX01BWCA8PSA0Mjk0OTY3Mjk1VQorCSAgfHwgbiA+PSBTSVpFX01BWCAvIHNpemVvZiAoRWxm
X0Fyc3ltKQorI2VuZGlmCiAJICB8fCBuICogc2l6ZW9mICh1aW50MzJfdCkgPiBpbmRleF9zaXpl
KQogCXsKIAkgIC8qIFRoaXMgaW5kZXggdGFibGUgY2Fubm90IGJlIHJpZ2h0IHNpbmNlIGl0IGRv
ZXMgbm90IGZpdCBpbnRvCi0tLSBlbGZ1dGlscy0wLjEwOC9saWJlbGYvbGliZWxmUC5oLmpqCTIw
MDUtMDMtMzAgMDM6NDI6MzIuMDAwMDAwMDAwICswMjAwCisrKyBlbGZ1dGlscy0wLjEwOC9saWJl
bGYvbGliZWxmUC5oCTIwMDUtMDUtMTQgMDE6Mjg6NDcuMDAwMDAwMDAwICswMjAwCkBAIC01MzEs
NCArNTMxLDEzIEBAIGV4dGVybiB1aW50MzJfdCBfX2xpYmVsZl9jcmMzMiAodWludDMyX3QKICAg
fSB3aGlsZSAoMCkKICNlbmRpZgogCisvKiBDb252ZW5pZW5jZSBtYWNyby4gIEFzc3VtZXMgaW50
IE5EWCBhbmQgVFlQRSB3aXRoIHNpemUgYXQgbGVhc3QKKyAgIDIgYnl0ZXMuICAqLworI2lmIFNJ
WkVfTUFYID4gNDI5NDk2NzI5NVUKKyMgZGVmaW5lIElOVkFMSURfTkRYKG5keCwgdHlwZSkgdW5s
aWtlbHkgKG5keCA8IDApCisjZWxzZQorIyBkZWZpbmUgSU5WQUxJRF9ORFgobmR4LCB0eXBlKSBc
CisgIHVubGlrZWx5ICgodW5zaWduZWQgaW50KSAobmR4KSA+PSBTSVpFX01BWCAvIHNpemVvZiAo
dHlwZSkpCisjZW5kaWYKKwogI2VuZGlmICAvKiBsaWJlbGZQLmggKi8KLS0tIGVsZnV0aWxzLTAu
MTA4L2xpYmVsZi9nZWxmX2dldGxpYi5jLmpqCTIwMDQtMDEtMjMgMTk6MjI6NTYuMDAwMDAwMDAw
ICswMTAwCisrKyBlbGZ1dGlscy0wLjEwOC9saWJlbGYvZ2VsZl9nZXRsaWIuYwkyMDA1LTA1LTE0
IDAxOjMxOjI1LjAwMDAwMDAwMCArMDIwMApAQCAtMSw1ICsxLDUgQEAKIC8qIEdldCBsaWJyYXJ5
IGZyb20gdGFibGUgYXQgdGhlIGdpdmVuIGluZGV4LgotICAgQ29weXJpZ2h0IChDKSAyMDA0IFJl
ZCBIYXQsIEluYy4KKyAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBSZWQgSGF0LCBJbmMuCiAg
ICBXcml0dGVuIGJ5IFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQHJlZGhhdC5jb20+LCAyMDA0Lgog
CiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yIG1vZGlmeQpAQCAtNTMsNyArNTMsOCBAQCBnZWxmX2dldGxpYiAoZGF0YSwgbmR4
LCBkc3QpCiAgIC8qIFRoZSBkYXRhIGlzIGFscmVhZHkgaW4gdGhlIGNvcnJlY3QgZm9ybS4gIEp1
c3QgbWFrZSBzdXJlIHRoZQogICAgICBpbmRleCBpcyBPSy4gICovCiAgIEdFbGZfTGliICpyZXN1
bHQgPSBOVUxMOwotICBpZiAodW5saWtlbHkgKChuZHggKyAxKSAqIHNpemVvZiAoR0VsZl9MaWIp
ID4gZGF0YS0+ZF9zaXplKSkKKyAgaWYgKElOVkFMSURfTkRYIChuZHgsIEdFbGZfTGliKQorICAg
ICAgfHwgdW5saWtlbHkgKChuZHggKyAxKSAqIHNpemVvZiAoR0VsZl9MaWIpID4gZGF0YS0+ZF9z
aXplKSkKICAgICBfX2xpYmVsZl9zZXRlcnJubyAoRUxGX0VfSU5WQUxJRF9JTkRFWCk7CiAgIGVs
c2UKICAgICB7Ci0tLSBlbGZ1dGlscy0wLjEwOC9saWJlbGYvZ2VsZl91cGRhdGVfc3ltc2huZHgu
Yy5qagkyMDA0LTAxLTA1IDIxOjQ1OjA1LjAwMDAwMDAwMCArMDEwMAorKysgZWxmdXRpbHMtMC4x
MDgvbGliZWxmL2dlbGZfdXBkYXRlX3N5bXNobmR4LmMJMjAwNS0wNS0xNCAwMTozMToyNS4wMDAw
MDAwMDAgKzAyMDAKQEAgLTEsNiArMSw2IEBACiAvKiBVcGRhdGUgc3ltYm9sIGluZm9ybWF0aW9u
IGFuZCBzZWN0aW9uIGluZGV4IGluIHN5bWJvbCB0YWJsZSBhdCB0aGUKICAgIGdpdmVuIGluZGV4
LgotICAgQ29weXJpZ2h0IChDKSAyMDAwLCAyMDAxLCAyMDAyIFJlZCBIYXQsIEluYy4KKyAgIENv
cHlyaWdodCAoQykgMjAwMCwgMjAwMSwgMjAwMiwgMjAwNSBSZWQgSGF0LCBJbmMuCiAgICBXcml0
dGVuIGJ5IFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQHJlZGhhdC5jb20+LCAyMDAwLgogCiAgICBU
aGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yIG1vZGlmeQpAQCAtNDQsMTIgKzQ0LDYgQEAgZ2VsZl91cGRhdGVfc3ltc2huZHggKHN5bWRh
dGEsIHNobmR4ZGF0YQogICBpZiAoc3ltZGF0YSA9PSBOVUxMKQogICAgIHJldHVybiAwOwogCi0g
IGlmICh1bmxpa2VseSAobmR4IDwgMCkpCi0gICAgewotICAgICAgX19saWJlbGZfc2V0ZXJybm8g
KEVMRl9FX0lOVkFMSURfSU5ERVgpOwotICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCiAgIGlmICh1
bmxpa2VseSAoc3ltZGF0YV9zY24tPmQuZF90eXBlICE9IEVMRl9UX1NZTSkpCiAgICAgewogICAg
ICAgLyogVGhlIHR5cGUgb2YgdGhlIGRhdGEgYmV0dGVyIHNob3VsZCBtYXRjaC4gICovCkBAIC05
NSw3ICs4OSw4IEBAIGdlbGZfdXBkYXRlX3N5bXNobmR4IChzeW1kYXRhLCBzaG5keGRhdGEKIAl9
CiAKICAgICAgIC8qIENoZWNrIHdoZXRoZXIgd2UgaGF2ZSB0byByZXNpemUgdGhlIGRhdGEgYnVm
ZmVyLiAgKi8KLSAgICAgIGlmICh1bmxpa2VseSAoKG5keCArIDEpICogc2l6ZW9mIChFbGYzMl9T
eW0pID4gc3ltZGF0YV9zY24tPmQuZF9zaXplKSkKKyAgICAgIGlmIChJTlZBTElEX05EWCAobmR4
LCBFbGYzMl9TeW0pCisJICB8fCB1bmxpa2VseSAoKG5keCArIDEpICogc2l6ZW9mIChFbGYzMl9T
eW0pID4gc3ltZGF0YV9zY24tPmQuZF9zaXplKSkKIAl7CiAJICBfX2xpYmVsZl9zZXRlcnJubyAo
RUxGX0VfSU5WQUxJRF9JTkRFWCk7CiAJICBnb3RvIG91dDsKQEAgLTExOCw3ICsxMTMsOCBAQCBn
ZWxmX3VwZGF0ZV9zeW1zaG5keCAoc3ltZGF0YSwgc2huZHhkYXRhCiAgIGVsc2UKICAgICB7CiAg
ICAgICAvKiBDaGVjayB3aGV0aGVyIHdlIGhhdmUgdG8gcmVzaXplIHRoZSBkYXRhIGJ1ZmZlci4g
ICovCi0gICAgICBpZiAodW5saWtlbHkgKChuZHggKyAxKSAqIHNpemVvZiAoRWxmNjRfU3ltKSA+
IHN5bWRhdGFfc2NuLT5kLmRfc2l6ZSkpCisgICAgICBpZiAoSU5WQUxJRF9ORFggKG5keCwgRWxm
NjRfU3ltKQorCSAgfHwgdW5saWtlbHkgKChuZHggKyAxKSAqIHNpemVvZiAoRWxmNjRfU3ltKSA+
IHN5bWRhdGFfc2NuLT5kLmRfc2l6ZSkpCiAJewogCSAgX19saWJlbGZfc2V0ZXJybm8gKEVMRl9F
X0lOVkFMSURfSU5ERVgpOwogCSAgZ290byBvdXQ7Ci0tLSBlbGZ1dGlscy0wLjEwOC9saWJlbGYv
ZWxmMzJfZ2V0c2hkci5jLmpqCTIwMDUtMDItMDYgMTA6MTQ6NTIuMDAwMDAwMDAwICswMTAwCisr
KyBlbGZ1dGlscy0wLjEwOC9saWJlbGYvZWxmMzJfZ2V0c2hkci5jCTIwMDUtMDUtMTQgMDA6MzI6
NTcuMDAwMDAwMDAwICswMjAwCkBAIC02Niw3ICs2Niw4IEBAIGVsZncyKExJQkVMRkJJVFMsZ2V0
c2hkcikgKHNjbikKIAlnb3RvIG91dDsKIAogICAgICAgc2l6ZV90IHNobnVtOwotICAgICAgaWYg
KElOVFVTRSAoZWxmX2dldHNobnVtKSAoZWxmLCAmc2hudW0pICE9IDApCisgICAgICBpZiAoSU5U
VVNFIChlbGZfZ2V0c2hudW0pIChlbGYsICZzaG51bSkgIT0gMAorCSAgfHwgc2hudW0gPiBTSVpF
X01BWCAvIHNpemVvZiAoRWxmVzIoTElCRUxGQklUUyxTaGRyKSkpCiAJZ290byBvdXQ7CiAgICAg
ICBzaXplX3Qgc2l6ZSA9IHNobnVtICogc2l6ZW9mIChFbGZXMihMSUJFTEZCSVRTLFNoZHIpKTsK
IAotLS0gZWxmdXRpbHMtMC4xMDgvbGliZWxmL2dlbGZfdXBkYXRlX3JlbGEuYy5qagkyMDA0LTAx
LTA1IDIxOjQ1OjA1LjAwMDAwMDAwMCArMDEwMAorKysgZWxmdXRpbHMtMC4xMDgvbGliZWxmL2dl
bGZfdXBkYXRlX3JlbGEuYwkyMDA1LTA1LTE0IDAxOjMxOjI1LjAwMDAwMDAwMCArMDIwMApAQCAt
MSw1ICsxLDUgQEAKIC8qIFVwZGF0ZSBSRUxBIHJlbG9jYXRpb24gaW5mb3JtYXRpb24gYXQgZ2l2
ZW4gaW5kZXguCi0gICBDb3B5cmlnaHQgKEMpIDIwMDAsIDIwMDEsIDIwMDIgUmVkIEhhdCwgSW5j
LgorICAgQ29weXJpZ2h0IChDKSAyMDAwLCAyMDAxLCAyMDAyLCAyMDA1IFJlZCBIYXQsIEluYy4K
ICAgIFdyaXR0ZW4gYnkgVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAcmVkaGF0LmNvbT4sIDIwMDAu
CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IgbW9kaWZ5CkBAIC0zNSwxMiArMzUsNiBAQCBnZWxmX3VwZGF0ZV9yZWxhIChF
bGZfRGF0YSAqZHN0LCBpbnQgbmR4CiAgIGlmIChkc3QgPT0gTlVMTCkKICAgICByZXR1cm4gMDsK
IAotICBpZiAodW5saWtlbHkgKG5keCA8IDApKQotICAgIHsKLSAgICAgIF9fbGliZWxmX3NldGVy
cm5vIChFTEZfRV9JTlZBTElEX0lOREVYKTsKLSAgICAgIHJldHVybiAwOwotICAgIH0KLQogICBp
ZiAodW5saWtlbHkgKGRhdGFfc2NuLT5kLmRfdHlwZSAhPSBFTEZfVF9SRUxBKSkKICAgICB7CiAg
ICAgICAvKiBUaGUgdHlwZSBvZiB0aGUgZGF0YSBiZXR0ZXIgc2hvdWxkIG1hdGNoLiAgKi8KQEAg
LTY4LDcgKzYyLDggQEAgZ2VsZl91cGRhdGVfcmVsYSAoRWxmX0RhdGEgKmRzdCwgaW50IG5keAog
CX0KIAogICAgICAgLyogQ2hlY2sgd2hldGhlciB3ZSBoYXZlIHRvIHJlc2l6ZSB0aGUgZGF0YSBi
dWZmZXIuICAqLwotICAgICAgaWYgKHVubGlrZWx5ICgobmR4ICsgMSkgKiBzaXplb2YgKEVsZjMy
X1JlbGEpID4gZGF0YV9zY24tPmQuZF9zaXplKSkKKyAgICAgIGlmIChJTlZBTElEX05EWCAobmR4
LCBFbGYzMl9SZWxhKQorCSAgfHwgdW5saWtlbHkgKChuZHggKyAxKSAqIHNpemVvZiAoRWxmMzJf
UmVsYSkgPiBkYXRhX3Njbi0+ZC5kX3NpemUpKQogCXsKIAkgIF9fbGliZWxmX3NldGVycm5vIChF
TEZfRV9JTlZBTElEX0lOREVYKTsKIAkgIGdvdG8gb3V0OwpAQCAtODQsNyArNzksOCBAQCBnZWxm
X3VwZGF0ZV9yZWxhIChFbGZfRGF0YSAqZHN0LCBpbnQgbmR4CiAgIGVsc2UKICAgICB7CiAgICAg
ICAvKiBDaGVjayB3aGV0aGVyIHdlIGhhdmUgdG8gcmVzaXplIHRoZSBkYXRhIGJ1ZmZlci4gICov
Ci0gICAgICBpZiAodW5saWtlbHkgKChuZHggKyAxKSAqIHNpemVvZiAoRWxmNjRfUmVsYSkgPiBk
YXRhX3Njbi0+ZC5kX3NpemUpKQorICAgICAgaWYgKElOVkFMSURfTkRYIChuZHgsIEVsZjY0X1Jl
bGEpCisJICB8fCB1bmxpa2VseSAoKG5keCArIDEpICogc2l6ZW9mIChFbGY2NF9SZWxhKSA+IGRh
dGFfc2NuLT5kLmRfc2l6ZSkpCiAJewogCSAgX19saWJlbGZfc2V0ZXJybm8gKEVMRl9FX0lOVkFM
SURfSU5ERVgpOwogCSAgZ290byBvdXQ7Ci0tLSBlbGZ1dGlscy0wLjEwOC9saWJlbGYvZ2VsZl91
cGRhdGVfdmVyc3ltLmMuamoJMjAwNC0wMS0wNSAyMTo0NTowNS4wMDAwMDAwMDAgKzAxMDAKKysr
IGVsZnV0aWxzLTAuMTA4L2xpYmVsZi9nZWxmX3VwZGF0ZV92ZXJzeW0uYwkyMDA1LTA1LTE0IDAx
OjMxOjI1LjAwMDAwMDAwMCArMDIwMApAQCAtMSw1ICsxLDUgQEAKIC8qIFVwZGF0ZSBzeW1ib2wg
dmVyc2lvbiBpbmZvcm1hdGlvbi4KLSAgIENvcHlyaWdodCAoQykgMjAwMSwgMjAwMiBSZWQgSGF0
LCBJbmMuCisgICBDb3B5cmlnaHQgKEMpIDIwMDEsIDIwMDIsIDIwMDUgUmVkIEhhdCwgSW5jLgog
ICAgV3JpdHRlbiBieSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPiwgMjAwMS4K
IAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vciBtb2RpZnkKQEAgLTQyLDcgKzQyLDcgQEAgZ2VsZl91cGRhdGVfdmVyc3ltIChk
YXRhLCBuZHgsIHNyYykKICAgYXNzZXJ0IChzaXplb2YgKEdFbGZfVmVyc3ltKSA9PSBzaXplb2Yg
KEVsZjY0X1ZlcnN5bSkpOwogCiAgIC8qIENoZWNrIHdoZXRoZXIgd2UgaGF2ZSB0byByZXNpemUg
dGhlIGRhdGEgYnVmZmVyLiAgKi8KLSAgaWYgKHVubGlrZWx5IChuZHggPCAwKQorICBpZiAoSU5W
QUxJRF9ORFggKG5keCwgR0VsZl9WZXJzeW0pCiAgICAgICB8fCB1bmxpa2VseSAoKG5keCArIDEp
ICogc2l6ZW9mIChHRWxmX1ZlcnN5bSkgPiBkYXRhX3Njbi0+ZC5kX3NpemUpKQogICAgIHsKICAg
ICAgIF9fbGliZWxmX3NldGVycm5vIChFTEZfRV9JTlZBTElEX0lOREVYKTsKLS0tIGVsZnV0aWxz
LTAuMTA4L2xpYmVsZi9nZWxmX3VwZGF0ZV9yZWwuYy5qagkyMDA0LTAxLTA1IDIxOjQ1OjA1LjAw
MDAwMDAwMCArMDEwMAorKysgZWxmdXRpbHMtMC4xMDgvbGliZWxmL2dlbGZfdXBkYXRlX3JlbC5j
CTIwMDUtMDUtMTQgMDE6MzE6MjUuMDAwMDAwMDAwICswMjAwCkBAIC0xLDUgKzEsNSBAQAogLyog
VXBkYXRlIFJFTCByZWxvY2F0aW9uIGluZm9ybWF0aW9uIGF0IGdpdmVuIGluZGV4LgotICAgQ29w
eXJpZ2h0IChDKSAyMDAwLCAyMDAxLCAyMDAyIFJlZCBIYXQsIEluYy4KKyAgIENvcHlyaWdodCAo
QykgMjAwMCwgMjAwMSwgMjAwMiwgMjAwNSBSZWQgSGF0LCBJbmMuCiAgICBXcml0dGVuIGJ5IFVs
cmljaCBEcmVwcGVyIDxkcmVwcGVyQHJlZGhhdC5jb20+LCAyMDAwLgogCiAgICBUaGlzIHByb2dy
YW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlm
eQpAQCAtMzUsMTIgKzM1LDYgQEAgZ2VsZl91cGRhdGVfcmVsIChFbGZfRGF0YSAqZHN0LCBpbnQg
bmR4LAogICBpZiAoZHN0ID09IE5VTEwpCiAgICAgcmV0dXJuIDA7CiAKLSAgaWYgKHVubGlrZWx5
IChuZHggPCAwKSkKLSAgICB7Ci0gICAgICBfX2xpYmVsZl9zZXRlcnJubyAoRUxGX0VfSU5WQUxJ
RF9JTkRFWCk7Ci0gICAgICByZXR1cm4gMDsKLSAgICB9Ci0KICAgaWYgKHVubGlrZWx5IChkYXRh
X3Njbi0+ZC5kX3R5cGUgIT0gRUxGX1RfUkVMKSkKICAgICB7CiAgICAgICAvKiBUaGUgdHlwZSBv
ZiB0aGUgZGF0YSBiZXR0ZXIgc2hvdWxkIG1hdGNoLiAgKi8KQEAgLTY2LDcgKzYwLDggQEAgZ2Vs
Zl91cGRhdGVfcmVsIChFbGZfRGF0YSAqZHN0LCBpbnQgbmR4LAogCX0KIAogICAgICAgLyogQ2hl
Y2sgd2hldGhlciB3ZSBoYXZlIHRvIHJlc2l6ZSB0aGUgZGF0YSBidWZmZXIuICAqLwotICAgICAg
aWYgKHVubGlrZWx5ICgobmR4ICsgMSkgKiBzaXplb2YgKEVsZjMyX1JlbCkgPiBkYXRhX3Njbi0+
ZC5kX3NpemUpKQorICAgICAgaWYgKElOVkFMSURfTkRYIChuZHgsIEVsZjMyX1JlbCkKKwkgIHx8
IHVubGlrZWx5ICgobmR4ICsgMSkgKiBzaXplb2YgKEVsZjMyX1JlbCkgPiBkYXRhX3Njbi0+ZC5k
X3NpemUpKQogCXsKIAkgIF9fbGliZWxmX3NldGVycm5vIChFTEZfRV9JTlZBTElEX0lOREVYKTsK
IAkgIGdvdG8gb3V0OwpAQCAtODEsNyArNzYsOCBAQCBnZWxmX3VwZGF0ZV9yZWwgKEVsZl9EYXRh
ICpkc3QsIGludCBuZHgsCiAgIGVsc2UKICAgICB7CiAgICAgICAvKiBDaGVjayB3aGV0aGVyIHdl
IGhhdmUgdG8gcmVzaXplIHRoZSBkYXRhIGJ1ZmZlci4gICovCi0gICAgICBpZiAodW5saWtlbHkg
KChuZHggKyAxKSAqIHNpemVvZiAoRWxmNjRfUmVsKSA+IGRhdGFfc2NuLT5kLmRfc2l6ZSkpCisg
ICAgICBpZiAoSU5WQUxJRF9ORFggKG5keCwgRWxmNjRfUmVsKQorCSAgfHwgdW5saWtlbHkgKChu
ZHggKyAxKSAqIHNpemVvZiAoRWxmNjRfUmVsKSA+IGRhdGFfc2NuLT5kLmRfc2l6ZSkpCiAJewog
CSAgX19saWJlbGZfc2V0ZXJybm8gKEVMRl9FX0lOVkFMSURfSU5ERVgpOwogCSAgZ290byBvdXQ7
Ci0tLSBlbGZ1dGlscy0wLjEwOC9zcmMvZWxmbGludC5jLmpqCTIwMDUtMDUtMDcgMDE6NDY6MjYu
MDAwMDAwMDAwICswMjAwCisrKyBlbGZ1dGlscy0wLjEwOC9zcmMvZWxmbGludC5jCTIwMDUtMDUt
MTQgMDI6MjI6MjQuMDAwMDAwMDAwICswMjAwCkBAIC0xMTEsNiArMTExLDkgQEAgc3RhdGljIHVp
bnQzMl90IHNoc3RybmR4OwogLyogQXJyYXkgdG8gY291bnQgcmVmZXJlbmNlcyBpbiBzZWN0aW9u
IGdyb3Vwcy4gICovCiBzdGF0aWMgaW50ICpzY25yZWY7CiAKKy8qIE51bWJlciBvZiBzZWN0aW9u
cy4gICovCitzdGF0aWMgdW5zaWduZWQgaW50IHNobnVtOworCiAKIGludAogbWFpbiAoaW50IGFy
Z2MsIGNoYXIgKmFyZ3ZbXSkKQEAgLTMwMCwxMCArMzAzLDE3IEBAIHNlY3Rpb25fbmFtZSAoRWJs
ICplYmwsIGludCBpZHgpCiB7CiAgIEdFbGZfU2hkciBzaGRyX21lbTsKICAgR0VsZl9TaGRyICpz
aGRyOworICBjb25zdCBjaGFyICpyZXQ7CisKKyAgaWYgKCh1bnNpZ25lZCBpbnQpIGlkeCA+IHNo
bnVtKQorICAgIHJldHVybiAiPGludmFsaWQ+IjsKIAogICBzaGRyID0gZ2VsZl9nZXRzaGRyIChl
bGZfZ2V0c2NuIChlYmwtPmVsZiwgaWR4KSwgJnNoZHJfbWVtKTsKIAotICByZXR1cm4gZWxmX3N0
cnB0ciAoZWJsLT5lbGYsIHNoc3RybmR4LCBzaGRyLT5zaF9uYW1lKTsKKyAgcmV0ID0gZWxmX3N0
cnB0ciAoZWJsLT5lbGYsIHNoc3RybmR4LCBzaGRyLT5zaF9uYW1lKTsKKyAgaWYgKHJldCA9PSBO
VUxMKQorICAgIHJldHVybiAiPGludmFsaWQ+IjsKKyAgcmV0dXJuIHJldDsKIH0KIAogCkBAIC0z
MjUsMTAgKzMzNSw2IEBAIHN0YXRpYyBjb25zdCBpbnQgdmFsaWRfZV9tYWNoaW5lW10gPQogICAo
c2l6ZW9mICh2YWxpZF9lX21hY2hpbmUpIC8gc2l6ZW9mICh2YWxpZF9lX21hY2hpbmVbMF0pKQog
CiAKLS8qIE51bWJlciBvZiBzZWN0aW9ucy4gICovCi1zdGF0aWMgdW5zaWduZWQgaW50IHNobnVt
OwotCi0KIHN0YXRpYyB2b2lkCiBjaGVja19lbGZfaGVhZGVyIChFYmwgKmVibCwgR0VsZl9FaGRy
ICplaGRyLCBzaXplX3Qgc2l6ZSkKIHsKQEAgLTYwOCw3ICs2MTQsOCBAQCBjaGVja19zeW10YWIg
KEVibCAqZWJsLCBHRWxmX0VoZHIgKmVoZHIsCiAgICAgICB4bmR4ZGF0YSA9IE5VTEw7CiAgICAg
fQogCi0gIGlmIChzaGRyLT5zaF9lbnRzaXplICE9IGdlbGZfZnNpemUgKGVibC0+ZWxmLCBFTEZf
VF9TWU0sIDEsIEVWX0NVUlJFTlQpKQorICBzaXplX3Qgc2hfZW50c2l6ZSA9IGdlbGZfZnNpemUg
KGVibC0+ZWxmLCBFTEZfVF9TWU0sIDEsIEVWX0NVUlJFTlQpOworICBpZiAoc2hkci0+c2hfZW50
c2l6ZSAhPSBzaF9lbnRzaXplKQogICAgIEVSUk9SIChnZXR0ZXh0ICgiXAogc2VjdGlvbiBbJTJ6
dV0gJyVzJzogZW50cnkgc2l6ZSBpcyBkb2VzIG5vdCBtYXRjaCBFbGZYWF9TeW1cbiIpLAogCSAg
IGNudCwgc2VjdGlvbl9uYW1lIChlYmwsIGNudCkpOwpAQCAtNjQ2LDcgKzY1Myw3IEBAIHNlY3Rp
b24gWyUyZF0gJyVzJzogWElOREVYIGZvciB6ZXJvdGggZW4KIAkgICAgICAgeG5keHNjbmlkeCwg
c2VjdGlvbl9uYW1lIChlYmwsIHhuZHhzY25pZHgpKTsKICAgICB9CiAKLSAgZm9yIChjbnQgPSAx
OyBjbnQgPCBzaGRyLT5zaF9zaXplIC8gc2hkci0+c2hfZW50c2l6ZTsgKytjbnQpCisgIGZvciAo
Y250ID0gMTsgY250IDwgc2hkci0+c2hfc2l6ZSAvIHNoX2VudHNpemU7ICsrY250KQogICAgIHsK
ICAgICAgIHN5bSA9IGdlbGZfZ2V0c3ltc2huZHggKGRhdGEsIHhuZHhkYXRhLCBjbnQsICZzeW1f
bWVtLCAmeG5keCk7CiAgICAgICBpZiAoc3ltID09IE5VTEwpCkBAIC02NjQsNyArNjcxLDggQEAg
c2VjdGlvbiBbJTJkXSAnJXMnOiBzeW1ib2wgJXp1OiBpbnZhbGlkIAogICAgICAgZWxzZQogCXsK
IAkgIG5hbWUgPSBlbGZfc3RycHRyIChlYmwtPmVsZiwgc2hkci0+c2hfbGluaywgc3ltLT5zdF9u
YW1lKTsKLQkgIGFzc2VydCAobmFtZSAhPSBOVUxMKTsKKwkgIGFzc2VydCAobmFtZSAhPSBOVUxM
CisJCSAgfHwgc3Ryc2hkci0+c2hfdHlwZSAhPSBTSFRfU1RSVEFCKTsKIAl9CiAKICAgICAgIGlm
IChzeW0tPnN0X3NobmR4ID09IFNITl9YSU5ERVgpCkBAIC05NTQsNyArOTYyLDcgQEAgaXNfcmVs
X2R5biAoRWJsICplYmwsIEdFbGZfRWhkciAqZWhkciwgaQogICAgICAgY29uc3QgR0VsZl9TaGRy
ICpyY3NoZHIgPSBnZWxmX2dldHNoZHIgKHNjbiwgJnJjc2hkcl9tZW0pOwogICAgICAgYXNzZXJ0
IChyY3NoZHIgIT0gTlVMTCk7CiAKLSAgICAgIGlmIChyY3NoZHItPnNoX3R5cGUgPT0gU0hUX0RZ
TkFNSUMpCisgICAgICBpZiAocmNzaGRyLT5zaF90eXBlID09IFNIVF9EWU5BTUlDICYmIHJjc2hk
ci0+c2hfZW50c2l6ZSkKIAl7CiAJICAvKiBGb3VuZCB0aGUgZHluYW1pYyBzZWN0aW9uLiAgTG9v
ayB0aHJvdWdoIGl0LiAgKi8KIAkgIEVsZl9EYXRhICpkID0gZWxmX2dldGRhdGEgKHNjbiwgTlVM
TCk7CkBAIC05NjQsMTQgKzk3MiwxNyBAQCBpc19yZWxfZHluIChFYmwgKmVibCwgR0VsZl9FaGRy
ICplaGRyLCBpCiAJICAgIHsKIAkgICAgICBHRWxmX0R5biBkeW5fbWVtOwogCSAgICAgIEdFbGZf
RHluICpkeW4gPSBnZWxmX2dldGR5biAoZCwgY250LCAmZHluX21lbSk7Ci0JICAgICAgYXNzZXJ0
IChkeW4gIT0gTlVMTCk7CisKKwkgICAgICBpZiAoZHluID09IE5VTEwpCisJCWJyZWFrOwogCiAJ
ICAgICAgaWYgKGR5bi0+ZF90YWcgPT0gRFRfUkVMQ09VTlQpCiAJCXsKIAkJICAvKiBGb3VuZCBp
dC4gIE9uZSBsYXN0IGNoZWNrOiBkb2VzIHRoZSBudW1iZXIKIAkJICAgICBzcGVjaWZpZWQgbnVt
YmVyIG9mIHJlbGF0aXZlIHJlbG9jYXRpb25zIGV4Y2VlZAogCQkgICAgIHRoZSB0b3RhbCBudW1i
ZXIgb2YgcmVsb2NhdGlvbnM/ICAqLwotCQkgIGlmIChkeW4tPmRfdW4uZF92YWwgPiBzaGRyLT5z
aF9zaXplIC8gc2hkci0+c2hfZW50c2l6ZSkKKwkJICBpZiAoc2hkci0+c2hfZW50c2l6ZQorCQkg
ICAgICAmJiBkeW4tPmRfdW4uZF92YWwgPiBzaGRyLT5zaF9zaXplIC8gc2hkci0+c2hfZW50c2l6
ZSkKIAkJICAgIEVSUk9SIChnZXR0ZXh0ICgiXAogc2VjdGlvbiBbJTJkXSAnJXMnOiBEVF9SRUxD
T1VOVCB2YWx1ZSAlZCB0b28gaGlnaCBmb3IgdGhpcyBzZWN0aW9uXG4iKSwKIAkJCSAgIGlkeCwg
c2VjdGlvbl9uYW1lIChlYmwsIGlkeCksCkBAIC0xMDQ4LDcgKzEwNTksOCBAQCBzZWN0aW9uIFsl
MmRdICclcyc6IG5vIHJlbG9jYXRpb25zIGZvciBtCiAJfQogICAgIH0KIAotICBpZiAoc2hkci0+
c2hfZW50c2l6ZSAhPSBnZWxmX2ZzaXplIChlYmwtPmVsZiwgRUxGX1RfUkVMQSwgMSwgRVZfQ1VS
UkVOVCkpCisgIHNpemVfdCBzaF9lbnRzaXplID0gZ2VsZl9mc2l6ZSAoZWJsLT5lbGYsIEVMRl9U
X1JFTEEsIDEsIEVWX0NVUlJFTlQpOworICBpZiAoc2hkci0+c2hfZW50c2l6ZSAhPSBzaF9lbnRz
aXplKQogICAgIEVSUk9SIChnZXR0ZXh0ICgiXAogc2VjdGlvbiBbJTJkXSAnJXMnOiBzZWN0aW9u
IGVudHJ5IHNpemUgZG9lcyBub3QgbWF0Y2ggRWxmWFhfUmVsYVxuIiksCiAJICAgaWR4LCBzZWN0
aW9uX25hbWUgKGVibCwgaWR4KSk7CkBAIC0xMDU4LDcgKzEwNzAsNyBAQCBzZWN0aW9uIFslMmRd
ICclcyc6IHNlY3Rpb24gZW50cnkgc2l6ZSBkCiAgIEdFbGZfU2hkciAqc3ltc2hkciA9IGdlbGZf
Z2V0c2hkciAoc3ltc2NuLCAmc3ltc2hkcl9tZW0pOwogICBFbGZfRGF0YSAqc3ltZGF0YSA9IGVs
Zl9nZXRkYXRhIChzeW1zY24sIE5VTEwpOwogCi0gIGZvciAoY250ID0gMDsgY250IDwgc2hkci0+
c2hfc2l6ZSAvIHNoZHItPnNoX2VudHNpemU7ICsrY250KQorICBmb3IgKGNudCA9IDA7IGNudCA8
IHNoZHItPnNoX3NpemUgLyBzaF9lbnRzaXplOyArK2NudCkKICAgICB7CiAgICAgICBHRWxmX1Jl
bGEgcmVsYV9tZW07CiAgICAgICBHRWxmX1JlbGEgKnJlbGE7CkBAIC0xMTgzLDcgKzExOTUsOCBA
QCBzZWN0aW9uIFslMmRdICclcyc6IG5vIHJlbG9jYXRpb25zIGZvciBtCiAJfQogICAgIH0KIAot
ICBpZiAoc2hkci0+c2hfZW50c2l6ZSAhPSBnZWxmX2ZzaXplIChlYmwtPmVsZiwgRUxGX1RfUkVM
LCAxLCBFVl9DVVJSRU5UKSkKKyAgc2l6ZV90IHNoX2VudHNpemUgPSBnZWxmX2ZzaXplIChlYmwt
PmVsZiwgRUxGX1RfUkVMLCAxLCBFVl9DVVJSRU5UKTsKKyAgaWYgKHNoZHItPnNoX2VudHNpemUg
IT0gc2hfZW50c2l6ZSkKICAgICBFUlJPUiAoZ2V0dGV4dCAoIlwKIHNlY3Rpb24gWyUyZF0gJyVz
Jzogc2VjdGlvbiBlbnRyeSBzaXplIGRvZXMgbm90IG1hdGNoIEVsZlhYX1JlbFxuIiksCiAJICAg
aWR4LCBzZWN0aW9uX25hbWUgKGVibCwgaWR4KSk7CkBAIC0xMTkzLDcgKzEyMDYsNyBAQCBzZWN0
aW9uIFslMmRdICclcyc6IHNlY3Rpb24gZW50cnkgc2l6ZSBkCiAgIEdFbGZfU2hkciAqc3ltc2hk
ciA9IGdlbGZfZ2V0c2hkciAoc3ltc2NuLCAmc3ltc2hkcl9tZW0pOwogICBFbGZfRGF0YSAqc3lt
ZGF0YSA9IGVsZl9nZXRkYXRhIChzeW1zY24sIE5VTEwpOwogCi0gIGZvciAoY250ID0gMDsgY250
IDwgc2hkci0+c2hfc2l6ZSAvIHNoZHItPnNoX2VudHNpemU7ICsrY250KQorICBmb3IgKGNudCA9
IDA7IGNudCA8IHNoZHItPnNoX3NpemUgLyBzaF9lbnRzaXplOyArK2NudCkKICAgICB7CiAgICAg
ICBHRWxmX1JlbCByZWxfbWVtOwogICAgICAgR0VsZl9SZWwgKnJlbDsKQEAgLTEzNDEsNyArMTM1
NCw4IEBAIHNlY3Rpb24gWyUyZF0gJyVzJzogcmVmZXJlbmNlZCBhcyBzdHJpbmcKIAkgICBzaGRy
LT5zaF9saW5rLCBzZWN0aW9uX25hbWUgKGVibCwgc2hkci0+c2hfbGluayksCiAJICAgaWR4LCBz
ZWN0aW9uX25hbWUgKGVibCwgaWR4KSk7CiAKLSAgaWYgKHNoZHItPnNoX2VudHNpemUgIT0gZ2Vs
Zl9mc2l6ZSAoZWJsLT5lbGYsIEVMRl9UX0RZTiwgMSwgRVZfQ1VSUkVOVCkpCisgIHNpemVfdCBz
aF9lbnRzaXplID0gZ2VsZl9mc2l6ZSAoZWJsLT5lbGYsIEVMRl9UX0RZTiwgMSwgRVZfQ1VSUkVO
VCk7CisgIGlmIChzaGRyLT5zaF9lbnRzaXplICE9IHNoX2VudHNpemUpCiAgICAgRVJST1IgKGdl
dHRleHQgKCJcCiBzZWN0aW9uIFslMmRdICclcyc6IHNlY3Rpb24gZW50cnkgc2l6ZSBkb2VzIG5v
dCBtYXRjaCBFbGZYWF9EeW5cbiIpLAogCSAgIGlkeCwgc2VjdGlvbl9uYW1lIChlYmwsIGlkeCkp
OwpAQCAtMTM1MSw3ICsxMzY1LDcgQEAgc2VjdGlvbiBbJTJkXSAnJXMnOiBzZWN0aW9uIGVudHJ5
IHNpemUgZAogCSAgIGlkeCwgc2VjdGlvbl9uYW1lIChlYmwsIGlkeCkpOwogCiAgIGJvb2wgbm9u
X251bGxfd2FybmVkID0gZmFsc2U7Ci0gIGZvciAoY250ID0gMDsgY250IDwgc2hkci0+c2hfc2l6
ZSAvIHNoZHItPnNoX2VudHNpemU7ICsrY250KQorICBmb3IgKGNudCA9IDA7IGNudCA8IHNoZHIt
PnNoX3NpemUgLyBzaF9lbnRzaXplOyArK2NudCkKICAgICB7CiAgICAgICBHRWxmX0R5biBkeW5f
bWVtOwogICAgICAgR0VsZl9EeW4gKmR5bjsKQEAgLTE1MDIsNiArMTUxNiw4IEBAIHNlY3Rpb24g
WyUyZF0gJyVzJzogZW50cnkgc2l6ZSBkb2VzIG5vdCAKIAkgICBpZHgsIHNlY3Rpb25fbmFtZSAo
ZWJsLCBpZHgpKTsKIAogICBpZiAoc3ltc2hkciAhPSBOVUxMCisgICAgICAmJiBzaGRyLT5zaF9l
bnRzaXplCisgICAgICAmJiBzeW1zaGRyLT5zaF9lbnRzaXplCiAgICAgICAmJiAoc2hkci0+c2hf
c2l6ZSAvIHNoZHItPnNoX2VudHNpemUKIAkgIDwgc3ltc2hkci0+c2hfc2l6ZSAvIHN5bXNoZHIt
PnNoX2VudHNpemUpKQogICAgIEVSUk9SIChnZXR0ZXh0ICgiXApAQCAtMTUzMCw2ICsxNTQ2LDEy
IEBAIHNlY3Rpb24gWyUyZF0gJyVzJzogZXh0ZW5kZWQgc2VjdGlvbiBpbmQKICAgICB9CiAKICAg
ZGF0YSA9IGVsZl9nZXRkYXRhIChzY24sIE5VTEwpOworICBpZiAoZGF0YSA9PSBOVUxMKQorICAg
IHsKKyAgICAgIEVSUk9SIChnZXR0ZXh0ICgic2VjdGlvbiBbJTJkXSAnJXMnOiBjYW5ub3QgZ2V0
IHNlY3Rpb24gZGF0YVxuIiksCisJICAgICBpZHgsIHNlY3Rpb25fbmFtZSAoZWJsLCBpZHgpKTsK
KyAgICAgIHJldHVybjsKKyAgICB9CiAKICAgaWYgKCooKEVsZjMyX1dvcmQgKikgZGF0YS0+ZF9i
dWYpICE9IDApCiAgICAgRVJST1IgKGdldHRleHQgKCJzeW1ib2wgMCBzaG91bGQgaGF2ZSB6ZXJv
IGV4dGVuZGVkIHNlY3Rpb24gaW5kZXhcbiIpKTsKQEAgLTE2MTMsNyArMTYzNSw3IEBAIHNlY3Rp
b24gWyUyZF0gJyVzJzogaGFzaCB0YWJsZSBzZWN0aW9uIGkKIAkgICBpZHgsIHNlY3Rpb25fbmFt
ZSAoZWJsLCBpZHgpLCAobG9uZyBpbnQpIHNoZHItPnNoX3NpemUsCiAJICAgKGxvbmcgaW50KSAo
KDIgKyBuYnVja2V0ICsgbmNoYWluKSAqIHNoZHItPnNoX2VudHNpemUpKTsKIAotICBpZiAoc3lt
c2hkciAhPSBOVUxMKQorICBpZiAoc3ltc2hkciAhPSBOVUxMICYmIHN5bXNoZHItPnNoX2VudHNp
emUpCiAgICAgewogICAgICAgc2l6ZV90IHN5bXNpemUgPSBzeW1zaGRyLT5zaF9zaXplIC8gc3lt
c2hkci0+c2hfZW50c2l6ZTsKICAgICAgIHNpemVfdCBjbnQ7CkBAIC0xOTEwLDggKzE5MzIsMTAg
QEAgc2VjdGlvbiBbJTJkXSAnJXMnIHJlZmVycyBpbiBzaF9saW5rIHRvIAogICAgICAgcmV0dXJu
OwogICAgIH0KIAotICBpZiAoc2hkci0+c2hfc2l6ZSAvIHNoZHItPnNoX2VudHNpemUKLSAgICAg
ICE9IHN5bXNoZHItPnNoX3NpemUgLyBzeW1zaGRyLT5zaF9lbnRzaXplKQorICBpZiAoc2hkci0+
c2hfZW50c2l6ZQorICAgICAgJiYgc3ltc2hkci0+c2hfZW50c2l6ZQorICAgICAgJiYgc2hkci0+
c2hfc2l6ZSAvIHNoZHItPnNoX2VudHNpemUKKwkgIT0gc3ltc2hkci0+c2hfc2l6ZSAvIHN5bXNo
ZHItPnNoX2VudHNpemUpCiAgICAgRVJST1IgKGdldHRleHQgKCJcCiBzZWN0aW9uIFslMmRdICcl
cycgaGFzIGRpZmZlcmVudCBudW1iZXIgb2YgZW50cmllcyB0aGFuIHN5bWJvbCB0YWJsZSBbJTJk
XSAnJXMnXG4iKSwKIAkgICBpZHgsIHNlY3Rpb25fbmFtZSAoZWJsLCBpZHgpLAoKCUpha3ViCg==
</data>        

          </attachment>
    </bug>

</bugzilla>