<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>18152</bug_id>
          
          <creation_ts>2008-12-09 10:29:16 +0300</creation_ts>
          <short_desc>Add APNG support</short_desc>
          <delta_ts>2012-09-23 03:04:19 +0400</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>libpng12</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc>http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=486209</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Gladkov">legion</reporter>
          <assigned_to name="placeholder@altlinux.org">placeholder</assigned_to>
          <cc>damir</cc>
    
    <cc>glebfm</cc>
    
    <cc>ldv</cc>
    
    <cc>placeholder</cc>
    
    <cc>vt</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>82476</commentid>
    <comment_count>0</comment_count>
      <attachid>3126</attachid>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2008-12-09 10:29:16 +0300</bug_when>
    <thetext>Created attachment 3126
http://www.linuxfromscratch.org/patches/blfs/svn/libpng-1.2.33-apng-1.patch

Прошу рассмотреть возможность добавить патч для поддержки APNG (патч прилагается). Это всё больше и больше нужно для mozilla-based продуктов, которые сейчас вынуждены собираться со своей копией libpng, что ужасно.

Делаю баг для отслеживания состояние этого вопроса, так как он сложный и неоднозначный. Вот несколько ссылок по теме:

http://ru.wikipedia.org/wiki/APNG
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=486209
https://bugzilla.mozilla.org/show_bug.cgi?id=433047
https://bugzilla.mozilla.org/show_bug.cgi?id=418900</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>82479</commentid>
    <comment_count>1</comment_count>
    <who name="Andrey Rahmatullin">wrar</who>
    <bug_when>2008-12-09 11:01:07 +0300</bug_when>
    <thetext>В ksquirrel-libs тоже своя копия из-за этого.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>82483</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2008-12-09 11:29:36 +0300</bug_when>
    <thetext>APNG используется во всех популярных браузерах и появляются приложения, которые его поддерживают (например: KSquirrel). Т.е. у нас назревает ситуация, когда некоторые программы будут вынуждены таскать с собой эту модифицированную библиотеку.

Если нет возможности добавить этот патч в libpng, то тогда может сделать модифицированную версию этой библиотеки с другим soname. Это хлопотно, то лучше чем держать копии в каждом приложении.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85045</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2009-01-26 19:39:51 +0300</bug_when>
    <thetext>Сomp: libpng12
Ping: Так каково будет решение ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103208</commentid>
    <comment_count>4</comment_count>
    <who name="Damir Shayhutdinov">damir</who>
    <bug_when>2009-11-16 17:27:56 +0300</bug_when>
    <thetext>Dmitry, can we hear your opinion on this enhancement? Are you consent with having bazillions of static copies of libpng in the repository?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103273</commentid>
    <comment_count>5</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2009-11-17 19:03:56 +0300</bug_when>
    <thetext>(In reply to comment #4)
&gt; Dmitry, can we hear your opinion on this enhancement? Are you consent with
&gt; having bazillions of static copies of libpng in the repository?

I&apos;ll happily pass the maintenance of this little library to a person who is ready to take the burden and maintain whatever patches he wants.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103281</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2009-11-17 23:26:19 +0300</bug_when>
    <thetext>I already use my instance of the library. So I feel it is no longer interesting.

(english powered by translate.google.com)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112435</commentid>
    <comment_count>7</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2010-09-21 14:36:49 +0400</bug_when>
    <thetext>So, who wants to maintain the library along with this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112453</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2010-09-21 15:08:34 +0400</bug_when>
    <thetext>I already do that. I have no other choice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133456</commentid>
    <comment_count>9</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2012-09-23 01:16:09 +0400</bug_when>
    <thetext>The upstream of libpng+APNG is mozilla, it has nothing to do with official libpng that is not going to add APNG support at all.  Sorry, I&apos;m not going to maintain yet another libpng, feel free if you need to.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133460</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2012-09-23 03:04:19 +0400</bug_when>
    <thetext>The right decision. There is absolutely no need to keep the same code together and synchronously update it. It is better to trust in the people who created the fork.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>3126</attachid>
            <date>2008-12-09 10:29:16 +0300</date>
            <delta_ts>2008-12-09 10:29:16 +0300</delta_ts>
            <desc>http://www.linuxfromscratch.org/patches/blfs/svn/libpng-1.2.33-apng-1.patch</desc>
            <filename>libpng-1.2.33-apng-1.patch</filename>
            <type>text/plain</type>
            <size>56253</size>
            <attacher name="Alexey Gladkov">legion</attacher>
            
              <data encoding="base64">U3VibWl0dGVkIEJ5OiBLZW4gTW9mZmF0IDxrZW4gYXQgbGludXhmcm9tc2NyYXRjaCBkb3Qgb3Jn
PgpEYXRlOiAyMDA4LTExLTA4CkluaXRpYWwgUGFja2FnZSBWZXJzaW9uOiAxLjIuMTAKVXBzdHJl
YW0gU3RhdHVzOiBSZWplY3RlZApPcmlnaW46IEFuZHJldyBTbWl0aCwgdXBkYXRlZCBmb3IgMS4y
LjMxIGJ5IEplbnMgT3Jub3QsIHRha2VuIGZyb20gY2JsZnMuCkRlc2NyaXB0aW9uOiBBUE5HIGlz
IGFuIGV4dGVuc2lvbiBvZiB0aGUgW1BOR11bcG5nc3BlY10gZm9ybWF0LCBhZGRpbmcgc3VwcG9y
dCBmb3IgYW5pbWF0ZWQgaW1hZ2VzLgogICAgICAgICAgICAgSXQgaXMgaW50ZW5kZWQgdG8gYmUg
YSByZXBsYWNlbWVudCBmb3Igc2ltcGxlIGFuaW1hdGVkIGltYWdlcwogICAgICAgICAgICAgdGhh
dCBoYXZlIHRyYWRpdGlvbmFsbHkgdXNlZCB0aGUgW0dJRl1bZ2lmc3BlY10gZm9ybWF0LAogICAg
ICAgICAgICAgd2hpbGUgYWRkaW5nIHN1cHBvcnQgZm9yIDI0LWJpdCBpbWFnZXMgYW5kIDgtYml0
IHRyYW5zcGFyZW5jeS4KICAgICAgICAgICAgIEFQTkcgaXMgYSBzaW1wbGVyIGFsdGVybmF0aXZl
IHRvIE1ORywKICAgICAgICAgICAgIHByb3ZpZGluZyBhIHNwZWMgc3VpdGFibGUgZm9yIHRoZSBt
b3N0IGNvbW1vbiB1c2FnZSBvZiBhbmltYXRlZCBpbWFnZXMgb24gdGhlIEludGVybmV0LgoKICAg
ICAgICAgICAgIEFQTkcgaXMgYmFja3dhcmRzLWNvbXBhdGlibGUgd2l0aCBQTkc7CiAgICAgICAg
ICAgICBhbnkgUE5HIGRlY29kZXIgc2hvdWxkIGJlIGFibGUgdG8gaWdub3JlIHRoZSBBUE5HLXNw
ZWNpZmljIGNodW5rcyBhbmQgZGlzcGxheSBhIHNpbmdsZSBpbWFnZS4KCmRpZmYgLXJ1TiBsaWJw
bmctMS4yLjMxL3BuZ3JlYWQuYy5vcmlnIGxpYnBuZy0xLjIuMzEvcG5ncmVhZC5jCi0tLSBsaWJw
bmctMS4yLjMxL3BuZ3JlYWQuYy5vcmlnCTIwMDgtMDgtMjMgMjE6NDQ6MzkuMDAwMDAwMDAwICsw
MjAwCisrKyBsaWJwbmctMS4yLjMxL3BuZ3JlYWQuYwkyMDA4LTA4LTIzIDIxOjQ4OjEzLjAwMDAw
MDAwMCArMDIwMApAQCAtNDA3LDYgKzQwNywxMSBAQAogI2lmIGRlZmluZWQoUE5HX1JFQURfelRY
dF9TVVBQT1JURUQpCiAgICAgICBQTkdfQ09OU1QgUE5HX3pUWHQ7CiAjZW5kaWYKKyNpZiBkZWZp
bmVkKFBOR19SRUFEX0FQTkdfU1VQUE9SVEVEKQorICAgICAgUE5HX0NPTlNUIFBOR19hY1RMOwor
ICAgICAgUE5HX0NPTlNUIFBOR19mY1RMOworICAgICAgUE5HX0NPTlNUIFBOR19mZEFUOworI2Vu
ZGlmCiAjZW5kaWYgLyogUE5HX1VTRV9MT0NBTF9BUlJBWVMgKi8KICAgICAgIHBuZ191aW50XzMy
IGxlbmd0aCA9IHBuZ19yZWFkX2NodW5rX2hlYWRlcihwbmdfcHRyKTsKICAgICAgIFBOR19DT05T
VCBwbmdfYnl0ZXAgY2h1bmtfbmFtZSA9IHBuZ19wdHItPmNodW5rX25hbWU7CkBAIC00NTEsNiAr
NDU2LDkgQEAKICAgICAgICAgICAgICAgICAgICEocG5nX3B0ci0+bW9kZSAmIFBOR19IQVZFX1BM
VEUpKQogICAgICAgICAgICAgcG5nX2Vycm9yKHBuZ19wdHIsICJNaXNzaW5nIFBMVEUgYmVmb3Jl
IElEQVQiKTsKIAorI2lmIGRlZmluZWQoUE5HX1JFQURfQVBOR19TVVBQT1JURUQpCisgICAgICAg
ICBwbmdfaGF2ZV9pbmZvKHBuZ19wdHIsIGluZm9fcHRyKTsKKyNlbmRpZgogICAgICAgICAgcG5n
X3B0ci0+aWRhdF9zaXplID0gbGVuZ3RoOwogICAgICAgICAgcG5nX3B0ci0+bW9kZSB8PSBQTkdf
SEFWRV9JREFUOwogICAgICAgICAgYnJlYWs7CkBAIC01MjMsMTIgKzUzMSw5NyBAQAogICAgICAg
ZWxzZSBpZiAoIXBuZ19tZW1jbXAoY2h1bmtfbmFtZSwgcG5nX2lUWHQsIDQpKQogICAgICAgICAg
cG5nX2hhbmRsZV9pVFh0KHBuZ19wdHIsIGluZm9fcHRyLCBsZW5ndGgpOwogI2VuZGlmCisjaWYg
ZGVmaW5lZChQTkdfUkVBRF9BUE5HX1NVUFBPUlRFRCkKKyAgICAgIGVsc2UgaWYgKCFwbmdfbWVt
Y21wKHBuZ19wdHItPmNodW5rX25hbWUsIHBuZ19hY1RMLCA0KSkKKyAgICAgICAgIHBuZ19oYW5k
bGVfYWNUTChwbmdfcHRyLCBpbmZvX3B0ciwgbGVuZ3RoKTsKKyAgICAgIGVsc2UgaWYgKCFwbmdf
bWVtY21wKHBuZ19wdHItPmNodW5rX25hbWUsIHBuZ19mY1RMLCA0KSkKKyAgICAgICAgIHBuZ19o
YW5kbGVfZmNUTChwbmdfcHRyLCBpbmZvX3B0ciwgbGVuZ3RoKTsKKyAgICAgIGVsc2UgaWYgKCFw
bmdfbWVtY21wKHBuZ19wdHItPmNodW5rX25hbWUsIHBuZ19mZEFULCA0KSkKKyAgICAgICAgIHBu
Z19oYW5kbGVfZmRBVChwbmdfcHRyLCBpbmZvX3B0ciwgbGVuZ3RoKTsKKyNlbmRpZgogICAgICAg
ZWxzZQogICAgICAgICAgcG5nX2hhbmRsZV91bmtub3duKHBuZ19wdHIsIGluZm9fcHRyLCBsZW5n
dGgpOwogICAgfQogfQogI2VuZGlmIC8qIFBOR19OT19TRVFVRU5USUFMX1JFQURfU1VQUE9SVEVE
ICovCiAKKyNpZiBkZWZpbmVkKFBOR19SRUFEX0FQTkdfU1VQUE9SVEVEKQordm9pZCBQTkdBUEkK
K3BuZ19yZWFkX2ZyYW1lX2hlYWQocG5nX3N0cnVjdHAgcG5nX3B0ciwgcG5nX2luZm9wIGluZm9f
cHRyKQoreworICAgIHBuZ19ieXRlIGhhdmVfY2h1bmtfYWZ0ZXJfREFUOyAvKiBhZnRlciBJREFU
IG9yIGFmdGVyIGZkQVQgKi8KKyAgICAKKyAgICBwbmdfZGVidWcoMCwgIlJlYWRpbmcgZnJhbWUg
aGVhZFxuIik7CisgICAgCisgICAgaWYgKCEocG5nX3B0ci0+bW9kZSAmIFBOR19IQVZFX2FjVEwp
KQorICAgICAgICBwbmdfZXJyb3IocG5nX3B0ciwgImF0dGVtcHQgdG8gcG5nX3JlYWRfZnJhbWVf
aGVhZCgpIGJ1dCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAibm8gYWNUTCBwcmVzZW50
Iik7CisgICAgCisgICAgLyogZG8gbm90aGluZyBmb3IgdGhlIG1haW4gSURBVCAqLworICAgIGlm
IChwbmdfcHRyLT5udW1fZnJhbWVzX3JlYWQgPT0gMCkKKyAgICAgICAgcmV0dXJuOworICAgIAor
ICAgIHBuZ19jcmNfZmluaXNoKHBuZ19wdHIsIDApOyAvKiBDUkMgZnJvbSBsYXN0IElEQVQgb3Ig
ZmRBVCBjaHVuayAqLworICAgIAorICAgIHBuZ19yZWFkX3Jlc2V0KHBuZ19wdHIpOworICAgIHBu
Z19wdHItPm1vZGUgJj0gflBOR19IQVZFX2ZjVEw7CisgICAgCisgICAgaGF2ZV9jaHVua19hZnRl
cl9EQVQgPSAwOworICAgIGZvciAoOzspCisgICAgeworI2lmZGVmIFBOR19VU0VfTE9DQUxfQVJS
QVlTCisgICAgICAgIFBOR19JREFUOworICAgICAgICBQTkdfZmRBVDsKKyAgICAgICAgUE5HX2Zj
VEw7CisjZW5kaWYKKyAgICAgICAgcG5nX2J5dGUgY2h1bmtfbGVuZ3RoWzRdOworICAgICAgICBw
bmdfdWludF8zMiBsZW5ndGg7CisgICAgICAgIAorICAgICAgICBwbmdfcmVhZF9kYXRhKHBuZ19w
dHIsIGNodW5rX2xlbmd0aCwgNCk7CisgICAgICAgIGxlbmd0aCA9IHBuZ19nZXRfdWludF8zMShw
bmdfcHRyLCBjaHVua19sZW5ndGgpOworICAgICAgICAKKyAgICAgICAgcG5nX3Jlc2V0X2NyYyhw
bmdfcHRyKTsKKyAgICAgICAgcG5nX2NyY19yZWFkKHBuZ19wdHIsIHBuZ19wdHItPmNodW5rX25h
bWUsIDQpOworICAgICAgICAKKyAgICAgICAgaWYgKCFwbmdfbWVtY21wKHBuZ19wdHItPmNodW5r
X25hbWUsIHBuZ19JREFULCA0KSkKKyAgICAgICAgeworICAgICAgICAgICAgLyogZGlzY2FyZCB0
cmFpbGluZyBJREFUcyBmb3IgdGhlIGZpcnN0IGZyYW1lICovCisgICAgICAgICAgICBpZiAoaGF2
ZV9jaHVua19hZnRlcl9EQVQgfHwgcG5nX3B0ci0+bnVtX2ZyYW1lc19yZWFkID4gMSkKKyAgICAg
ICAgICAgICAgICBwbmdfZXJyb3IocG5nX3B0ciwgInBuZ19yZWFkX2ZyYW1lX2hlYWQoKTogb3V0
IG9mIHBsYWNlIElEQVQiKTsKKyAgICAgICAgICAgIHBuZ19jcmNfZmluaXNoKHBuZ19wdHIsIGxl
bmd0aCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoIXBuZ19tZW1jbXAocG5nX3B0ci0+
Y2h1bmtfbmFtZSwgcG5nX2ZjVEwsIDQpKQorICAgICAgICB7CisgICAgICAgICAgICBwbmdfaGFu
ZGxlX2ZjVEwocG5nX3B0ciwgaW5mb19wdHIsIGxlbmd0aCk7CisgICAgICAgICAgICBoYXZlX2No
dW5rX2FmdGVyX0RBVCA9IDE7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoIXBuZ19tZW1j
bXAocG5nX3B0ci0+Y2h1bmtfbmFtZSwgcG5nX2ZkQVQsIDQpKQorICAgICAgICB7CisgICAgICAg
ICAgICBwbmdfZW5zdXJlX3NlcXVlbmNlX251bWJlcihwbmdfcHRyLCBsZW5ndGgpOworICAgICAg
ICAgICAgCisgICAgICAgICAgICAvKiBkaXNjYXJkIHRyYWlsaW5nIGZkQVRzIGZvciBmcmFtZXMg
b3RoZXIgdGhhbiB0aGUgZmlyc3QgKi8KKyAgICAgICAgICAgIGlmICghaGF2ZV9jaHVua19hZnRl
cl9EQVQgJiYgcG5nX3B0ci0+bnVtX2ZyYW1lc19yZWFkID4gMSkKKyAgICAgICAgICAgICAgICBw
bmdfY3JjX2ZpbmlzaChwbmdfcHRyLCBsZW5ndGggLSA0KTsKKyAgICAgICAgICAgIGVsc2UgaWYo
cG5nX3B0ci0+bW9kZSAmIFBOR19IQVZFX2ZjVEwpCisgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgcG5nX3B0ci0+aWRhdF9zaXplID0gbGVuZ3RoIC0gNDsKKyAgICAgICAgICAgICAgICBw
bmdfcHRyLT5tb2RlIHw9IFBOR19IQVZFX0lEQVQ7CisgICAgICAgICAgICAgICAgCisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgcG5nX2Vycm9yKHBuZ19wdHIsICJwbmdfcmVhZF9mcmFtZV9oZWFkKCk6IG91dCBv
ZiBwbGFjZSBmZEFUIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICB7CisgICAg
ICAgICAgICBwbmdfd2FybmluZyhwbmdfcHRyLCAiU2tpcHBlZCAoaWdub3JlZCkgYSBjaHVuayAi
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYmV0d2VlbiBBUE5HIGNodW5rcyIp
OworICAgICAgICAgICAgcG5nX2NyY19maW5pc2gocG5nX3B0ciwgbGVuZ3RoKTsKKyAgICAgICAg
fQorICAgIH0KK30KKyNlbmRpZiAvKiBQTkdfUkVBRF9BUE5HX1NVUFBPUlRFRCAqLworCiAvKiBv
cHRpb25hbCBjYWxsIHRvIHVwZGF0ZSB0aGUgdXNlcnMgaW5mb19wdHIgc3RydWN0dXJlICovCiB2
b2lkIFBOR0FQSQogcG5nX3JlYWRfdXBkYXRlX2luZm8ocG5nX3N0cnVjdHAgcG5nX3B0ciwgcG5n
X2luZm9wIGluZm9fcHRyKQpAQCAtNTY1LDYgKzY1OCwxMCBAQAogewogI2lmZGVmIFBOR19VU0Vf
TE9DQUxfQVJSQVlTCiAgICBQTkdfQ09OU1QgUE5HX0lEQVQ7CisjaWYgZGVmaW5lZChQTkdfUkVB
RF9BUE5HX1NVUFBPUlRFRCkKKyAgIFBOR19DT05TVCBQTkdfZmRBVDsKKyAgIFBOR19DT05TVCBQ
TkdfSUVORDsKKyNlbmRpZgogICAgUE5HX0NPTlNUIGludCBwbmdfcGFzc19kc3BfbWFza1s3XSA9
IHsweGZmLCAweDBmLCAweGZmLCAweDMzLCAweGZmLCAweDU1LAogICAgICAgMHhmZn07CiAgICBQ
TkdfQ09OU1QgaW50IHBuZ19wYXNzX21hc2tbN10gPSB7MHg4MCwgMHgwOCwgMHg4OCwgMHgyMiwg
MHhhYSwgMHg1NSwgMHhmZn07CkBAIC02OTQsMTMgKzc5MSw0MCBAQAogICAgewogICAgICAgaWYg
KCEocG5nX3B0ci0+enN0cmVhbS5hdmFpbF9pbikpCiAgICAgICB7Ci0gICAgICAgICB3aGlsZSAo
IXBuZ19wdHItPmlkYXRfc2l6ZSkKKyAgICAgICAgIHBuZ191aW50XzMyIGJ5dGVzX3RvX3NraXAg
PSAwOworCisgICAgICAgICB3aGlsZSAoIXBuZ19wdHItPmlkYXRfc2l6ZSB8fCBieXRlc190b19z
a2lwICE9IDApCiAgICAgICAgICB7Ci0gICAgICAgICAgICBwbmdfY3JjX2ZpbmlzaChwbmdfcHRy
LCAwKTsKKyAgICAgICAgICAgIHBuZ19jcmNfZmluaXNoKHBuZ19wdHIsIGJ5dGVzX3RvX3NraXAp
OworCSAgICBieXRlc190b19za2lwID0gMDsKIAogICAgICAgICAgICAgcG5nX3B0ci0+aWRhdF9z
aXplID0gcG5nX3JlYWRfY2h1bmtfaGVhZGVyKHBuZ19wdHIpOworICAgICAgICAgICAgCisjaWYg
ZGVmaW5lZChQTkdfUkVBRF9BUE5HX1NVUFBPUlRFRCkKKyAgICAgICAgICAgIGlmIChwbmdfcHRy
LT5udW1fZnJhbWVzX3JlYWQgPT0gMCkKKyAgICAgICAgICAgIHsKKyNlbmRpZgogICAgICAgICAg
ICAgaWYgKHBuZ19tZW1jbXAocG5nX3B0ci0+Y2h1bmtfbmFtZSwgcG5nX0lEQVQsIDQpKQogICAg
ICAgICAgICAgICAgcG5nX2Vycm9yKHBuZ19wdHIsICJOb3QgZW5vdWdoIGltYWdlIGRhdGEiKTsK
KyNpZiBkZWZpbmVkKFBOR19SRUFEX0FQTkdfU1VQUE9SVEVEKQorICAgICAgICAgICAgfQorICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgaWYgKCFwbmdfbWVt
Y21wKHBuZ19wdHItPmNodW5rX25hbWUsIHBuZ19JRU5ELCA0KSkKKyAgICAgICAgICAgICAgICAg
IHBuZ19lcnJvcihwbmdfcHRyLCAiTm90IGVub3VnaCBpbWFnZSBkYXRhIik7CisgICAgICAgICAg
ICAgICBpZiAocG5nX21lbWNtcChwbmdfcHRyLT5jaHVua19uYW1lLCBwbmdfZmRBVCwgNCkpCisg
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICBwbmdfd2FybmluZyhwbmdfcHRyLCAi
U2tpcHBlZCAoaWdub3JlZCkgYSBjaHVuayAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiYmV0d2VlbiBBUE5HIGNodW5rcyIpOworICAgICAgICAgICAgICAgICAgYnl0
ZXNfdG9fc2tpcCA9IHBuZ19wdHItPmlkYXRfc2l6ZTsKKyAgICAgICAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICBw
bmdfZW5zdXJlX3NlcXVlbmNlX251bWJlcihwbmdfcHRyLCBwbmdfcHRyLT5pZGF0X3NpemUpOwor
ICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICBwbmdfcHRyLT5pZGF0X3NpemUgLT0gNDsK
KyAgICAgICAgICAgIH0KKyNlbmRpZgogICAgICAgICAgfQogICAgICAgICAgcG5nX3B0ci0+enN0
cmVhbS5hdmFpbF9pbiA9ICh1SW50KXBuZ19wdHItPnpidWZfc2l6ZTsKICAgICAgICAgIHBuZ19w
dHItPnpzdHJlYW0ubmV4dF9pbiA9IHBuZ19wdHItPnpidWY7CkBAIC03MTgsNiArODQyLDkgQEAK
ICAgICAgICAgICAgIHBuZ19lcnJvcihwbmdfcHRyLCAiRXh0cmEgY29tcHJlc3NlZCBkYXRhIik7
CiAgICAgICAgICBwbmdfcHRyLT5tb2RlIHw9IFBOR19BRlRFUl9JREFUOwogICAgICAgICAgcG5n
X3B0ci0+ZmxhZ3MgfD0gUE5HX0ZMQUdfWkxJQl9GSU5JU0hFRDsKKyNpZiBkZWZpbmVkKFBOR19S
RUFEX0FQTkdfU1VQUE9SVEVEKQorICAgICAgICAgcG5nX3B0ci0+bnVtX2ZyYW1lc19yZWFkKys7
CisjZW5kaWYKICAgICAgICAgIGJyZWFrOwogICAgICAgfQogICAgICAgaWYgKHJldCAhPSBaX09L
KQpAQCAtOTY5LDYgKzEwOTYsMTEgQEAKICNpZiBkZWZpbmVkKFBOR19SRUFEX3pUWHRfU1VQUE9S
VEVEKQogICAgICAgUE5HX0NPTlNUIFBOR196VFh0OwogI2VuZGlmCisjaWYgZGVmaW5lZChQTkdf
UkVBRF9BUE5HX1NVUFBPUlRFRCkKKyAgICAgIFBOR19DT05TVCBQTkdfYWNUTDsKKyAgICAgIFBO
R19DT05TVCBQTkdfZmNUTDsKKyAgICAgIFBOR19DT05TVCBQTkdfZmRBVDsKKyNlbmRpZgogI2Vu
ZGlmIC8qIFBOR19VU0VfTE9DQUxfQVJSQVlTICovCiAgICAgICBwbmdfdWludF8zMiBsZW5ndGgg
PSBwbmdfcmVhZF9jaHVua19oZWFkZXIocG5nX3B0cik7CiAgICAgICBQTkdfQ09OU1QgcG5nX2J5
dGVwIGNodW5rX25hbWUgPSBwbmdfcHRyLT5jaHVua19uYW1lOwpAQCAtMTA2OSw2ICsxMjAxLDE0
IEBACiAgICAgICBlbHNlIGlmICghcG5nX21lbWNtcChjaHVua19uYW1lLCBwbmdfaVRYdCwgNCkp
CiAgICAgICAgICBwbmdfaGFuZGxlX2lUWHQocG5nX3B0ciwgaW5mb19wdHIsIGxlbmd0aCk7CiAj
ZW5kaWYKKyNpZiBkZWZpbmVkKFBOR19SRUFEX0FQTkdfU1VQUE9SVEVEKQorICAgICAgZWxzZSBp
ZiAoIXBuZ19tZW1jbXAocG5nX3B0ci0+Y2h1bmtfbmFtZSwgcG5nX2FjVEwsIDQpKQorICAgICAg
ICAgcG5nX2hhbmRsZV9hY1RMKHBuZ19wdHIsIGluZm9fcHRyLCBsZW5ndGgpOworICAgICAgZWxz
ZSBpZiAoIXBuZ19tZW1jbXAocG5nX3B0ci0+Y2h1bmtfbmFtZSwgcG5nX2ZjVEwsIDQpKQorICAg
ICAgICAgcG5nX2hhbmRsZV9mY1RMKHBuZ19wdHIsIGluZm9fcHRyLCBsZW5ndGgpOworICAgICAg
ZWxzZSBpZiAoIXBuZ19tZW1jbXAocG5nX3B0ci0+Y2h1bmtfbmFtZSwgcG5nX2ZkQVQsIDQpKQor
ICAgICAgICAgcG5nX2hhbmRsZV9mZEFUKHBuZ19wdHIsIGluZm9fcHRyLCBsZW5ndGgpOworI2Vu
ZGlmCiAgICAgICBlbHNlCiAgICAgICAgICBwbmdfaGFuZGxlX3Vua25vd24ocG5nX3B0ciwgaW5m
b19wdHIsIGxlbmd0aCk7CiAgICB9IHdoaWxlICghKHBuZ19wdHItPm1vZGUgJiBQTkdfSEFWRV9J
RU5EKSk7CmRpZmYgLXJ1TiBsaWJwbmctMS4yLjMxL3BuZ2dldC5jLm9yaWcgbGlicG5nLTEuMi4z
MS9wbmdnZXQuYwotLS0gbGlicG5nLTEuMi4zMS9wbmdnZXQuYy5vcmlnCTIwMDgtMDgtMjMgMjE6
NDQ6NTYuMDAwMDAwMDAwICswMjAwCisrKyBsaWJwbmctMS4yLjMxL3BuZ2dldC5jCTIwMDgtMDgt
MjMgMjE6NDg6MTMuMDAwMDAwMDAwICswMjAwCkBAIC03OTYsNiArNzk2LDE2NyBAQAogfQogI2Vu
ZGlmCiAKKyNpZiBkZWZpbmVkKFBOR19BUE5HX1NVUFBPUlRFRCkKK3BuZ191aW50XzMyIFBOR0FQ
SQorcG5nX2dldF9hY1RMKHBuZ19zdHJ1Y3RwIHBuZ19wdHIsIHBuZ19pbmZvcCBpbmZvX3B0ciwK
KyAgICAgICAgICAgICBwbmdfdWludF8zMiAqbnVtX2ZyYW1lcywgcG5nX3VpbnRfMzIgKm51bV9w
bGF5cykKK3sKKyAgICBwbmdfZGVidWcxKDEsICJpbiAlcyByZXRyaWV2YWwgZnVuY3Rpb25cbiIs
ICJhY1RMIik7CisgICAgCisgICAgaWYgKHBuZ19wdHIgIT0gTlVMTCAmJiBpbmZvX3B0ciAhPSBO
VUxMICYmCisgICAgICAgIChpbmZvX3B0ci0+dmFsaWQgJiBQTkdfSU5GT19hY1RMKSAmJgorICAg
ICAgICBudW1fZnJhbWVzICE9IE5VTEwgJiYgbnVtX3BsYXlzICE9IE5VTEwpCisgICAgeworICAg
ICAgICAqbnVtX2ZyYW1lcyA9IGluZm9fcHRyLT5udW1fZnJhbWVzOworICAgICAgICAqbnVtX3Bs
YXlzID0gaW5mb19wdHItPm51bV9wbGF5czsKKyAgICAgICAgcmV0dXJuICgxKTsKKyAgICB9Cisg
ICAgCisgICAgcmV0dXJuICgwKTsKK30KKworcG5nX3VpbnRfMzIgUE5HQVBJCitwbmdfZ2V0X251
bV9mcmFtZXMocG5nX3N0cnVjdHAgcG5nX3B0ciwgcG5nX2luZm9wIGluZm9fcHRyKQoreworICAg
IHBuZ19kZWJ1ZygxLCAiaW4gcG5nX2dldF9udW1fZnJhbWVzKClcbiIpOworICAgIAorICAgIGlm
IChwbmdfcHRyICE9IE5VTEwgJiYgaW5mb19wdHIgIT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIChp
bmZvX3B0ci0+bnVtX2ZyYW1lcyk7CisgICAgcmV0dXJuICgwKTsKK30KKworcG5nX3VpbnRfMzIg
UE5HQVBJCitwbmdfZ2V0X251bV9wbGF5cyhwbmdfc3RydWN0cCBwbmdfcHRyLCBwbmdfaW5mb3Ag
aW5mb19wdHIpCit7CisgICAgcG5nX2RlYnVnKDEsICJpbiBwbmdfZ2V0X251bV9wbGF5cygpXG4i
KTsKKyAgICAKKyAgICBpZiAocG5nX3B0ciAhPSBOVUxMICYmIGluZm9fcHRyICE9IE5VTEwpCisg
ICAgICAgIHJldHVybiAoaW5mb19wdHItPm51bV9wbGF5cyk7CisgICAgcmV0dXJuICgwKTsKK30K
KworcG5nX3VpbnRfMzIgUE5HQVBJCitwbmdfZ2V0X25leHRfZnJhbWVfZmNUTChwbmdfc3RydWN0
cCBwbmdfcHRyLCBwbmdfaW5mb3AgaW5mb19wdHIsCisgICAgICAgICAgICAgcG5nX3VpbnRfMzIg
KndpZHRoLCBwbmdfdWludF8zMiAqaGVpZ2h0LAorICAgICAgICAgICAgIHBuZ191aW50XzMyICp4
X29mZnNldCwgcG5nX3VpbnRfMzIgKnlfb2Zmc2V0LAorICAgICAgICAgICAgIHBuZ191aW50XzE2
ICpkZWxheV9udW0sIHBuZ191aW50XzE2ICpkZWxheV9kZW4sCisgICAgICAgICAgICAgcG5nX2J5
dGUgKmRpc3Bvc2Vfb3AsIHBuZ19ieXRlICpibGVuZF9vcCkKK3sKKyAgICBwbmdfZGVidWcxKDEs
ICJpbiAlcyByZXRyaWV2YWwgZnVuY3Rpb25cbiIsICJmY1RMIik7CisgICAgCisgICAgaWYgKHBu
Z19wdHIgIT0gTlVMTCAmJiBpbmZvX3B0ciAhPSBOVUxMICYmCisgICAgICAgIChpbmZvX3B0ci0+
dmFsaWQgJiBQTkdfSU5GT19mY1RMKSAmJgorICAgICAgICB3aWR0aCAhPSBOVUxMICYmIGhlaWdo
dCAhPSBOVUxMICYmIAorICAgICAgICB4X29mZnNldCAhPSBOVUxMICYmIHhfb2Zmc2V0ICE9IE5V
TEwgJiYgCisgICAgICAgIGRlbGF5X251bSAhPSBOVUxMICYmIGRlbGF5X2RlbiAhPSBOVUxMICYm
CisJZGlzcG9zZV9vcCAhPSBOVUxMICYmIGJsZW5kX29wICE9IE5VTEwpCisgICAgeworICAgICAg
ICAqd2lkdGggPSBpbmZvX3B0ci0+bmV4dF9mcmFtZV93aWR0aDsKKyAgICAgICAgKmhlaWdodCA9
IGluZm9fcHRyLT5uZXh0X2ZyYW1lX2hlaWdodDsKKyAgICAgICAgKnhfb2Zmc2V0ID0gaW5mb19w
dHItPm5leHRfZnJhbWVfeF9vZmZzZXQ7CisgICAgICAgICp5X29mZnNldCA9IGluZm9fcHRyLT5u
ZXh0X2ZyYW1lX3lfb2Zmc2V0OworICAgICAgICAqZGVsYXlfbnVtID0gaW5mb19wdHItPm5leHRf
ZnJhbWVfZGVsYXlfbnVtOworICAgICAgICAqZGVsYXlfZGVuID0gaW5mb19wdHItPm5leHRfZnJh
bWVfZGVsYXlfZGVuOworICAgICAgICAqZGlzcG9zZV9vcCA9IGluZm9fcHRyLT5uZXh0X2ZyYW1l
X2Rpc3Bvc2Vfb3A7CisgICAgICAgICpibGVuZF9vcCA9IGluZm9fcHRyLT5uZXh0X2ZyYW1lX2Js
ZW5kX29wOworICAgICAgICByZXR1cm4gKDEpOworICAgIH0KKyAgICAKKyAgICByZXR1cm4gKDAp
OworfQorCitwbmdfdWludF8zMiBQTkdBUEkKK3BuZ19nZXRfbmV4dF9mcmFtZV93aWR0aChwbmdf
c3RydWN0cCBwbmdfcHRyLCBwbmdfaW5mb3AgaW5mb19wdHIpCit7CisgICAgcG5nX2RlYnVnKDEs
ICJpbiBwbmdfZ2V0X25leHRfZnJhbWVfd2lkdGgoKVxuIik7CisgICAgCisgICAgaWYgKHBuZ19w
dHIgIT0gTlVMTCAmJiBpbmZvX3B0ciAhPSBOVUxMKQorICAgICAgICByZXR1cm4gKGluZm9fcHRy
LT5uZXh0X2ZyYW1lX3dpZHRoKTsKKyAgICByZXR1cm4gKDApOworfQorCitwbmdfdWludF8zMiBQ
TkdBUEkKK3BuZ19nZXRfbmV4dF9mcmFtZV9oZWlnaHQocG5nX3N0cnVjdHAgcG5nX3B0ciwgcG5n
X2luZm9wIGluZm9fcHRyKQoreworICAgIHBuZ19kZWJ1ZygxLCAiaW4gcG5nX2dldF9uZXh0X2Zy
YW1lX2hlaWdodCgpXG4iKTsKKyAgICAKKyAgICBpZiAocG5nX3B0ciAhPSBOVUxMICYmIGluZm9f
cHRyICE9IE5VTEwpCisgICAgICAgIHJldHVybiAoaW5mb19wdHItPm5leHRfZnJhbWVfaGVpZ2h0
KTsKKyAgICByZXR1cm4gKDApOworfQorCitwbmdfdWludF8zMiBQTkdBUEkKK3BuZ19nZXRfbmV4
dF9mcmFtZV94X29mZnNldChwbmdfc3RydWN0cCBwbmdfcHRyLCBwbmdfaW5mb3AgaW5mb19wdHIp
Cit7CisgICAgcG5nX2RlYnVnKDEsICJpbiBwbmdfZ2V0X25leHRfZnJhbWVfeF9vZmZzZXQoKVxu
Iik7CisgICAgCisgICAgaWYgKHBuZ19wdHIgIT0gTlVMTCAmJiBpbmZvX3B0ciAhPSBOVUxMKQor
ICAgICAgICByZXR1cm4gKGluZm9fcHRyLT5uZXh0X2ZyYW1lX3hfb2Zmc2V0KTsKKyAgICByZXR1
cm4gKDApOworfQorCitwbmdfdWludF8zMiBQTkdBUEkKK3BuZ19nZXRfbmV4dF9mcmFtZV95X29m
ZnNldChwbmdfc3RydWN0cCBwbmdfcHRyLCBwbmdfaW5mb3AgaW5mb19wdHIpCit7CisgICAgcG5n
X2RlYnVnKDEsICJpbiBwbmdfZ2V0X25leHRfZnJhbWVfeV9vZmZzZXQoKVxuIik7CisgICAgCisg
ICAgaWYgKHBuZ19wdHIgIT0gTlVMTCAmJiBpbmZvX3B0ciAhPSBOVUxMKQorICAgICAgICByZXR1
cm4gKGluZm9fcHRyLT5uZXh0X2ZyYW1lX3lfb2Zmc2V0KTsKKyAgICByZXR1cm4gKDApOworfQor
CitwbmdfdWludF8xNiBQTkdBUEkKK3BuZ19nZXRfbmV4dF9mcmFtZV9kZWxheV9udW0ocG5nX3N0
cnVjdHAgcG5nX3B0ciwgcG5nX2luZm9wIGluZm9fcHRyKQoreworICAgIHBuZ19kZWJ1ZygxLCAi
aW4gcG5nX2dldF9uZXh0X2ZyYW1lX2RlbGF5X251bSgpXG4iKTsKKyAgICAKKyAgICBpZiAocG5n
X3B0ciAhPSBOVUxMICYmIGluZm9fcHRyICE9IE5VTEwpCisgICAgICAgIHJldHVybiAoaW5mb19w
dHItPm5leHRfZnJhbWVfZGVsYXlfbnVtKTsKKyAgICByZXR1cm4gKDApOworfQorCitwbmdfdWlu
dF8xNiBQTkdBUEkKK3BuZ19nZXRfbmV4dF9mcmFtZV9kZWxheV9kZW4ocG5nX3N0cnVjdHAgcG5n
X3B0ciwgcG5nX2luZm9wIGluZm9fcHRyKQoreworICAgIHBuZ19kZWJ1ZygxLCAiaW4gcG5nX2dl
dF9uZXh0X2ZyYW1lX2RlbGF5X2RlbigpXG4iKTsKKyAgICAKKyAgICBpZiAocG5nX3B0ciAhPSBO
VUxMICYmIGluZm9fcHRyICE9IE5VTEwpCisgICAgICAgIHJldHVybiAoaW5mb19wdHItPm5leHRf
ZnJhbWVfZGVsYXlfZGVuKTsKKyAgICByZXR1cm4gKDApOworfQorCitwbmdfYnl0ZSBQTkdBUEkK
K3BuZ19nZXRfbmV4dF9mcmFtZV9kaXNwb3NlX29wKHBuZ19zdHJ1Y3RwIHBuZ19wdHIsIHBuZ19p
bmZvcCBpbmZvX3B0cikKK3sKKyAgICBwbmdfZGVidWcoMSwgImluIHBuZ19nZXRfbmV4dF9mcmFt
ZV9kaXNwb3NlX29wKClcbiIpOworICAgIAorICAgIGlmIChwbmdfcHRyICE9IE5VTEwgJiYgaW5m
b19wdHIgIT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIChpbmZvX3B0ci0+bmV4dF9mcmFtZV9kaXNw
b3NlX29wKTsKKyAgICByZXR1cm4gKDApOworfQorCitwbmdfYnl0ZSBQTkdBUEkKK3BuZ19nZXRf
bmV4dF9mcmFtZV9ibGVuZF9vcChwbmdfc3RydWN0cCBwbmdfcHRyLCBwbmdfaW5mb3AgaW5mb19w
dHIpCit7CisgICAgcG5nX2RlYnVnKDEsICJpbiBwbmdfZ2V0X25leHRfZnJhbWVfYmxlbmRfb3Ao
KVxuIik7CisgICAgCisgICAgaWYgKHBuZ19wdHIgIT0gTlVMTCAmJiBpbmZvX3B0ciAhPSBOVUxM
KQorICAgICAgICByZXR1cm4gKGluZm9fcHRyLT5uZXh0X2ZyYW1lX2JsZW5kX29wKTsKKyAgICBy
ZXR1cm4gKDApOworfQorCitwbmdfYnl0ZSBQTkdBUEkKK3BuZ19nZXRfZmlyc3RfZnJhbWVfaXNf
aGlkZGVuKHBuZ19zdHJ1Y3RwIHBuZ19wdHIsIHBuZ19pbmZvcCBpbmZvX3B0cikKK3sKKyAgICBw
bmdfZGVidWcoMSwgImluIHBuZ19maXJzdF9mcmFtZV9pc19oaWRkZW4oKVxuIik7CisgICAgCisg
ICAgaWYgKHBuZ19wdHIgIT0gTlVMTCkKKyAgICAgICByZXR1cm4gKHBuZ19ieXRlKShwbmdfcHRy
LT5hcG5nX2ZsYWdzICYgUE5HX0ZJUlNUX0ZSQU1FX0hJRERFTik7CisgICAgCisgICAgcmV0dXJu
IDA7Cit9CisjZW5kaWYgLyogUE5HX0FQTkdfU1VQUE9SVEVEICovCisKICNpZiBkZWZpbmVkKFBO
R19VTktOT1dOX0NIVU5LU19TVVBQT1JURUQpCiBwbmdfdWludF8zMiBQTkdBUEkKIHBuZ19nZXRf
dW5rbm93bl9jaHVua3MocG5nX3N0cnVjdHAgcG5nX3B0ciwgcG5nX2luZm9wIGluZm9fcHRyLApk
aWZmIC1ydU4gbGlicG5nLTEuMi4zMS9wbmcuYy5vcmlnIGxpYnBuZy0xLjIuMzEvcG5nLmMKLS0t
IGxpYnBuZy0xLjIuMzEvcG5nLmMub3JpZwkyMDA4LTA4LTIzIDIxOjQ1OjEzLjAwMDAwMDAwMCAr
MDIwMAorKysgbGlicG5nLTEuMi4zMS9wbmcuYwkyMDA4LTA4LTIzIDIxOjQ4OjEzLjAwMDAwMDAw
MCArMDIwMApAQCAtNTEsNiArNTEsOSBAQAogUE5HX3RJTUU7CiBQTkdfdFJOUzsKIFBOR196VFh0
OworUE5HX2FjVEw7CitQTkdfZmNUTDsKK1BOR19mZEFUOwogCiAjaWZkZWYgUE5HX1JFQURfU1VQ
UE9SVEVECiAvKiBhcnJheXMgdG8gZmFjaWxpdGF0ZSBlYXN5IGludGVybGFjaW5nIC0gdXNlIHBh
c3MgKDAgLSA2KSBhcyBpbmRleCAqLwpkaWZmIC1ydU4gbGlicG5nLTEuMi4zMS9wbmcuaC5vcmln
IGxpYnBuZy0xLjIuMzEvcG5nLmgKLS0tIGxpYnBuZy0xLjIuMzEvcG5nLmgub3JpZwkyMDA4LTA4
LTIzIDIxOjQ1OjM0LjAwMDAwMDAwMCArMDIwMAorKysgbGlicG5nLTEuMi4zMS9wbmcuaAkyMDA4
LTA4LTIzIDIxOjQ4OjEzLjAwMDAwMDAwMCArMDIwMApAQCAtOTc0LDYgKzk3NCwxOSBAQAogICAg
cG5nX2ZpeGVkX3BvaW50IGludF95X2JsdWU7CiAjZW5kaWYKIAorI2lmIGRlZmluZWQoUE5HX0FQ
TkdfU1VQUE9SVEVEKQorICAgcG5nX3VpbnRfMzIgbnVtX2ZyYW1lczsgLyogaW5jbHVkaW5nIGRl
ZmF1bHQgaW1hZ2UgKi8KKyAgIHBuZ191aW50XzMyIG51bV9wbGF5czsKKyAgIHBuZ191aW50XzMy
IG5leHRfZnJhbWVfd2lkdGg7CisgICBwbmdfdWludF8zMiBuZXh0X2ZyYW1lX2hlaWdodDsKKyAg
IHBuZ191aW50XzMyIG5leHRfZnJhbWVfeF9vZmZzZXQ7CisgICBwbmdfdWludF8zMiBuZXh0X2Zy
YW1lX3lfb2Zmc2V0OworICAgcG5nX3VpbnRfMTYgbmV4dF9mcmFtZV9kZWxheV9udW07CisgICBw
bmdfdWludF8xNiBuZXh0X2ZyYW1lX2RlbGF5X2RlbjsKKyAgIHBuZ19ieXRlIG5leHRfZnJhbWVf
ZGlzcG9zZV9vcDsKKyAgIHBuZ19ieXRlIG5leHRfZnJhbWVfYmxlbmRfb3A7CisjZW5kaWYKKwog
fSBwbmdfaW5mbzsKIAogdHlwZWRlZiBwbmdfaW5mbyBGQVIgKiBwbmdfaW5mb3A7CkBAIC0xMDc1
LDYgKzEwODgsOCBAQAogI2RlZmluZSBQTkdfSU5GT19zUExUIDB4MjAwMCAgIC8qIEVTUiwgMS4w
LjYgKi8KICNkZWZpbmUgUE5HX0lORk9fc0NBTCAweDQwMDAgICAvKiBFU1IsIDEuMC42ICovCiAj
ZGVmaW5lIFBOR19JTkZPX0lEQVQgMHg4MDAwTCAgLyogRVNSLCAxLjAuNiAqLworI2RlZmluZSBQ
TkdfSU5GT19hY1RMIDB4MTAwMDBMCisjZGVmaW5lIFBOR19JTkZPX2ZjVEwgMHgyMDAwMEwKIAog
LyogVGhpcyBpcyB1c2VkIGZvciB0aGUgdHJhbnNmb3JtYXRpb24gcm91dGluZXMsIGFzIHNvbWUg
b2YgdGhlbQogICogY2hhbmdlIHRoZXNlIHZhbHVlcyBmb3IgdGhlIHJvdy4gIEl0IGFsc28gc2hv
dWxkIGVuYWJsZSB1c2luZwpAQCAtMTExNSw2ICsxMTMwLDEwIEBACiB0eXBlZGVmIHZvaWQgKFBO
R0FQSSAqcG5nX3Byb2dyZXNzaXZlX2VuZF9wdHIpIFBOR0FSRygocG5nX3N0cnVjdHAsIHBuZ19p
bmZvcCkpOwogdHlwZWRlZiB2b2lkIChQTkdBUEkgKnBuZ19wcm9ncmVzc2l2ZV9yb3dfcHRyKSBQ
TkdBUkcoKHBuZ19zdHJ1Y3RwLCBwbmdfYnl0ZXAsCiAgICBwbmdfdWludF8zMiwgaW50KSk7Cisj
aWYgZGVmaW5lZChQTkdfQVBOR19TVVBQT1JURUQpCit0eXBlZGVmIHZvaWQgKFBOR0FQSSAqcG5n
X3Byb2dyZXNzaXZlX2ZyYW1lX3B0cikgUE5HQVJHKChwbmdfc3RydWN0cCwgCisgICBwbmdfdWlu
dF8zMikpOworI2VuZGlmCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoUE5HX1JFQURfVVNFUl9UUkFO
U0ZPUk1fU1VQUE9SVEVEKSB8fCBcCkBAIC0xNDQ2LDYgKzE0NjUsMzkgQEAKICAgIHBuZ191aW50
XzMyIHVzZXJfaGVpZ2h0X21heDsKICNlbmRpZgogCisjaWYgZGVmaW5lZChQTkdfQVBOR19TVVBQ
T1JURUQpCisgICBwbmdfdWludF8zMiBhcG5nX2ZsYWdzOworICAgcG5nX3VpbnRfMzIgbmV4dF9z
ZXFfbnVtOyAgICAgICAgIC8qIG5leHQgZmNUTC9mZEFUIGNodW5rIHNlcXVlbmNlIG51bWJlciAq
LworICAgcG5nX3VpbnRfMzIgZmlyc3RfZnJhbWVfd2lkdGg7CisgICBwbmdfdWludF8zMiBmaXJz
dF9mcmFtZV9oZWlnaHQ7CisKKyNpZiBkZWZpbmVkKFBOR19SRUFEX0FQTkdfU1VQUE9SVEVEKQor
ICAgcG5nX3VpbnRfMzIgbnVtX2ZyYW1lc19yZWFkOyAgICAgIC8qIGluY3JlbWVudGVkIGFmdGVy
IGFsbCBpbWFnZSBkYXRhIG9mICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLyogYSBmcmFtZSBpcyByZWFkICovCisjaWZkZWYgUE5HX1BST0dSRVNTSVZFX1JFQURfU1VQ
UE9SVEVECisgICBwbmdfcHJvZ3Jlc3NpdmVfZnJhbWVfcHRyIGZyYW1lX2luZm9fZm47IC8qIGZy
YW1lIGluZm8gcmVhZCBjYWxsYmFjayAqLworICAgcG5nX3Byb2dyZXNzaXZlX2ZyYW1lX3B0ciBm
cmFtZV9lbmRfZm47ICAvKiBmcmFtZSBkYXRhIHJlYWQgY2FsbGJhY2sgKi8KKyNlbmRpZgorI2Vu
ZGlmCisKKyNpZiBkZWZpbmVkKFBOR19XUklURV9BUE5HX1NVUFBPUlRFRCkKKyAgIHBuZ191aW50
XzMyIG51bV9mcmFtZXNfdG9fd3JpdGU7CisgICBwbmdfdWludF8zMiBudW1fZnJhbWVzX3dyaXR0
ZW47CisjZW5kaWYKKyNlbmRpZgorCisvKiBGb3IgcG5nX3N0cnVjdC5hcG5nX2ZsYWdzOiAqLwor
I2RlZmluZSBQTkdfRklSU1RfRlJBTUVfSElEREVOICAgICAgIDB4MDAwMQorCisvKiBkaXNwb3Nl
X29wIGZsYWdzIGZyb20gaW5zaWRlIGZjVEwgKi8KKyNkZWZpbmUgUE5HX0RJU1BPU0VfT1BfTk9O
RSAgICAgICAgMHgwMAorI2RlZmluZSBQTkdfRElTUE9TRV9PUF9CQUNLR1JPVU5EICAweDAxCisj
ZGVmaW5lIFBOR19ESVNQT1NFX09QX1BSRVZJT1VTICAgIDB4MDIKKworLyogYmxlbmRfb3AgZmxh
Z3MgZnJvbSBpbnNpZGUgZmNUTCAqLworI2RlZmluZSBQTkdfQkxFTkRfT1BfU09VUkNFICAgICAg
ICAweDAwCisjZGVmaW5lIFBOR19CTEVORF9PUF9PVkVSICAgICAgICAgIDB4MDEKKwogLyogTmV3
IG1lbWJlciBhZGRlZCBpbiBsaWJwbmctMS4wLjI1IGFuZCAxLjIuMTcgKi8KICNpZiBkZWZpbmVk
KFBOR19VTktOT1dOX0NIVU5LU19TVVBQT1JURUQpCiAgICAvKiBzdG9yYWdlIGZvciB1bmtub3du
IGNodW5rIHRoYXQgdGhlIGxpYnJhcnkgZG9lc24ndCByZWNvZ25pemUuICovCkBAIC0xNzc5LDYg
KzE4MzEsMTggQEAKIGV4dGVybiBQTkdfRVhQT1JUKHZvaWQscG5nX3dyaXRlX2ltYWdlKSBQTkdB
UkcoKHBuZ19zdHJ1Y3RwIHBuZ19wdHIsCiAgICBwbmdfYnl0ZXBwIGltYWdlKSk7CiAKKyNpZiBk
ZWZpbmVkKFBOR19XUklURV9BUE5HX1NVUFBPUlRFRCkKK2V4dGVybiBQTkdfRVhQT1JUICh2b2lk
LHBuZ193cml0ZV9mcmFtZV9oZWFkKSBQTkdBUkcoKHBuZ19zdHJ1Y3RwIHBuZ19wdHIsCisgICBw
bmdfaW5mb3AgcG5nX2luZm8sIHBuZ19ieXRlcHAgcm93X3BvaW50ZXJzLAorICAgcG5nX3VpbnRf
MzIgd2lkdGgsIHBuZ191aW50XzMyIGhlaWdodCwKKyAgIHBuZ191aW50XzMyIHhfb2Zmc2V0LCBw
bmdfdWludF8zMiB5X29mZnNldCwgCisgICBwbmdfdWludF8xNiBkZWxheV9udW0sIHBuZ191aW50
XzE2IGRlbGF5X2RlbiwgcG5nX2J5dGUgZGlzcG9zZV9vcCwKKyAgIHBuZ19ieXRlIGJsZW5kX29w
KSk7CisKK2V4dGVybiBQTkdfRVhQT1JUICh2b2lkLHBuZ193cml0ZV9mcmFtZV90YWlsKSBQTkdB
UkcoKHBuZ19zdHJ1Y3RwIHBuZ19wdHIsCisgICBwbmdfaW5mb3AgcG5nX2luZm8pKTsKKyNlbmRp
ZgorICAgCiAvKiB3cml0ZXMgdGhlIGVuZCBvZiB0aGUgUE5HIGZpbGUuICovCiBleHRlcm4gUE5H
X0VYUE9SVCh2b2lkLHBuZ193cml0ZV9lbmQpIFBOR0FSRygocG5nX3N0cnVjdHAgcG5nX3B0ciwK
ICAgIHBuZ19pbmZvcCBpbmZvX3B0cikpOwpAQCAtMjAyNyw2ICsyMDkxLDExIEBACiAgICBwbmdf
dm9pZHAgcHJvZ3Jlc3NpdmVfcHRyLAogICAgcG5nX3Byb2dyZXNzaXZlX2luZm9fcHRyIGluZm9f
Zm4sIHBuZ19wcm9ncmVzc2l2ZV9yb3dfcHRyIHJvd19mbiwKICAgIHBuZ19wcm9ncmVzc2l2ZV9l
bmRfcHRyIGVuZF9mbikpOworI2lmIGRlZmluZWQoUE5HX1JFQURfQVBOR19TVVBQT1JURUQpCitl
eHRlcm4gUE5HX0VYUE9SVCh2b2lkLHBuZ19zZXRfcHJvZ3Jlc3NpdmVfZnJhbWVfZm4pIFBOR0FS
RygocG5nX3N0cnVjdHAgcG5nX3B0ciwKKyAgIHBuZ19wcm9ncmVzc2l2ZV9mcmFtZV9wdHIgZnJh
bWVfaW5mb19mbiwKKyAgIHBuZ19wcm9ncmVzc2l2ZV9mcmFtZV9wdHIgZnJhbWVfZW5kX2ZuKSk7
CisjZW5kaWYKIAogLyogcmV0dXJucyB0aGUgdXNlciBwb2ludGVyIGFzc29jaWF0ZWQgd2l0aCB0
aGUgcHVzaCByZWFkIGZ1bmN0aW9ucyAqLwogZXh0ZXJuIFBOR19FWFBPUlQocG5nX3ZvaWRwLHBu
Z19nZXRfcHJvZ3Jlc3NpdmVfcHRyKQpAQCAtMjQ2NCw2ICsyNTMzLDU5IEBACiAjZW5kaWYKICNl
bmRpZiAvKiBQTkdfc0NBTF9TVVBQT1JURUQgfHwgUE5HX1dSSVRFX3NDQUxfU1VQUE9SVEVEICov
CiAKKyNpZiBkZWZpbmVkKFBOR19BUE5HX1NVUFBPUlRFRCkKK2V4dGVybiBQTkdfRVhQT1JUKHBu
Z191aW50XzMyLHBuZ19nZXRfYWNUTCkgUE5HQVJHKChwbmdfc3RydWN0cCBwbmdfcHRyLAorICAg
cG5nX2luZm9wIGluZm9fcHRyLCBwbmdfdWludF8zMiAqbnVtX2ZyYW1lcywgcG5nX3VpbnRfMzIg
Km51bV9wbGF5cykpOworZXh0ZXJuIFBOR19FWFBPUlQocG5nX3VpbnRfMzIscG5nX3NldF9hY1RM
KSBQTkdBUkcoKHBuZ19zdHJ1Y3RwIHBuZ19wdHIsIAorICAgcG5nX2luZm9wIGluZm9fcHRyLCBw
bmdfdWludF8zMiBudW1fZnJhbWVzLCBwbmdfdWludF8zMiBudW1fcGxheXMpKTsKK2V4dGVybiBQ
TkdfRVhQT1JUKHBuZ191aW50XzMyLHBuZ19nZXRfbnVtX2ZyYW1lcykgUE5HQVJHKChwbmdfc3Ry
dWN0cCBwbmdfcHRyLAorICAgcG5nX2luZm9wIGluZm9fcHRyKSk7CitleHRlcm4gUE5HX0VYUE9S
VChwbmdfdWludF8zMixwbmdfZ2V0X251bV9wbGF5cykgCisgICBQTkdBUkcoKHBuZ19zdHJ1Y3Rw
IHBuZ19wdHIsIHBuZ19pbmZvcCBpbmZvX3B0cikpOworCitleHRlcm4gUE5HX0VYUE9SVChwbmdf
dWludF8zMixwbmdfZ2V0X25leHRfZnJhbWVfZmNUTCkgCisgICBQTkdBUkcoKHBuZ19zdHJ1Y3Rw
IHBuZ19wdHIsIHBuZ19pbmZvcCBpbmZvX3B0ciwgcG5nX3VpbnRfMzIgKndpZHRoLCAKKyAgIHBu
Z191aW50XzMyICpoZWlnaHQsIHBuZ191aW50XzMyICp4X29mZnNldCwgcG5nX3VpbnRfMzIgKnlf
b2Zmc2V0LCAKKyAgIHBuZ191aW50XzE2ICpkZWxheV9udW0sIHBuZ191aW50XzE2ICpkZWxheV9k
ZW4sIHBuZ19ieXRlICpkaXNwb3NlX29wLAorICAgcG5nX2J5dGUgKmJsZW5kX29wKSk7CitleHRl
cm4gUE5HX0VYUE9SVChwbmdfdWludF8zMixwbmdfc2V0X25leHRfZnJhbWVfZmNUTCkgCisgICBQ
TkdBUkcoKHBuZ19zdHJ1Y3RwIHBuZ19wdHIsIHBuZ19pbmZvcCBpbmZvX3B0ciwgcG5nX3VpbnRf
MzIgd2lkdGgsIAorICAgcG5nX3VpbnRfMzIgaGVpZ2h0LCBwbmdfdWludF8zMiB4X29mZnNldCwg
cG5nX3VpbnRfMzIgeV9vZmZzZXQsIAorICAgcG5nX3VpbnRfMTYgZGVsYXlfbnVtLCBwbmdfdWlu
dF8xNiBkZWxheV9kZW4sIHBuZ19ieXRlIGRpc3Bvc2Vfb3AsCisgICBwbmdfYnl0ZSBibGVuZF9v
cCkpOworZXh0ZXJuIFBOR19FWFBPUlQodm9pZCxwbmdfZW5zdXJlX2ZjVExfaXNfdmFsaWQpCisg
ICBQTkdBUkcoKHBuZ19zdHJ1Y3RwIHBuZ19wdHIsCisgICBwbmdfdWludF8zMiB3aWR0aCwgcG5n
X3VpbnRfMzIgaGVpZ2h0LAorICAgcG5nX3VpbnRfMzIgeF9vZmZzZXQsIHBuZ191aW50XzMyIHlf
b2Zmc2V0LAorICAgcG5nX3VpbnRfMTYgZGVsYXlfbnVtLCBwbmdfdWludF8xNiBkZWxheV9kZW4s
CisgICBwbmdfYnl0ZSBkaXNwb3NlX29wLCBwbmdfYnl0ZSBibGVuZF9vcCkpOworZXh0ZXJuIFBO
R19FWFBPUlQocG5nX3VpbnRfMzIscG5nX2dldF9uZXh0X2ZyYW1lX3dpZHRoKQorICAgUE5HQVJH
KChwbmdfc3RydWN0cCBwbmdfcHRyLCBwbmdfaW5mb3AgaW5mb19wdHIpKTsKK2V4dGVybiBQTkdf
RVhQT1JUKHBuZ191aW50XzMyLHBuZ19nZXRfbmV4dF9mcmFtZV9oZWlnaHQpCisgICBQTkdBUkco
KHBuZ19zdHJ1Y3RwIHBuZ19wdHIsIHBuZ19pbmZvcCBpbmZvX3B0cikpOworZXh0ZXJuIFBOR19F
WFBPUlQocG5nX3VpbnRfMzIscG5nX2dldF9uZXh0X2ZyYW1lX3hfb2Zmc2V0KQorICAgUE5HQVJH
KChwbmdfc3RydWN0cCBwbmdfcHRyLCBwbmdfaW5mb3AgaW5mb19wdHIpKTsKK2V4dGVybiBQTkdf
RVhQT1JUKHBuZ191aW50XzMyLHBuZ19nZXRfbmV4dF9mcmFtZV95X29mZnNldCkKKyAgIFBOR0FS
RygocG5nX3N0cnVjdHAgcG5nX3B0ciwgcG5nX2luZm9wIGluZm9fcHRyKSk7CitleHRlcm4gUE5H
X0VYUE9SVChwbmdfdWludF8xNixwbmdfZ2V0X25leHRfZnJhbWVfZGVsYXlfbnVtKQorICAgUE5H
QVJHKChwbmdfc3RydWN0cCBwbmdfcHRyLCBwbmdfaW5mb3AgaW5mb19wdHIpKTsKK2V4dGVybiBQ
TkdfRVhQT1JUKHBuZ191aW50XzE2LHBuZ19nZXRfbmV4dF9mcmFtZV9kZWxheV9kZW4pCisgICBQ
TkdBUkcoKHBuZ19zdHJ1Y3RwIHBuZ19wdHIsIHBuZ19pbmZvcCBpbmZvX3B0cikpOworZXh0ZXJu
IFBOR19FWFBPUlQocG5nX2J5dGUscG5nX2dldF9uZXh0X2ZyYW1lX2Rpc3Bvc2Vfb3ApCisgICBQ
TkdBUkcoKHBuZ19zdHJ1Y3RwIHBuZ19wdHIsIHBuZ19pbmZvcCBpbmZvX3B0cikpOworZXh0ZXJu
IFBOR19FWFBPUlQocG5nX2J5dGUscG5nX2dldF9uZXh0X2ZyYW1lX2JsZW5kX29wKQorICAgUE5H
QVJHKChwbmdfc3RydWN0cCBwbmdfcHRyLCBwbmdfaW5mb3AgaW5mb19wdHIpKTsKK2V4dGVybiBQ
TkdfRVhQT1JUKHBuZ19ieXRlLHBuZ19nZXRfZmlyc3RfZnJhbWVfaXNfaGlkZGVuKQorICAgUE5H
QVJHKChwbmdfc3RydWN0cCBwbmdfcHRyLCBwbmdfaW5mb3AgaW5mb19wdHIpKTsKK2V4dGVybiBQ
TkdfRVhQT1JUKHBuZ191aW50XzMyLHBuZ19zZXRfZmlyc3RfZnJhbWVfaXNfaGlkZGVuKQorICAg
UE5HQVJHKChwbmdfc3RydWN0cCBwbmdfcHRyLCBwbmdfaW5mb3AgaW5mb19wdHIsIHBuZ19ieXRl
IGlzX2hpZGRlbikpOworI2VuZGlmIC8qIFBOR19BUE5HX1NVUFBPUlRFRCAqLworCisjaWYgZGVm
aW5lZChQTkdfUkVBRF9BUE5HX1NVUFBPUlRFRCkKK2V4dGVybiBQTkdfRVhQT1JUKHZvaWQscG5n
X3JlYWRfZnJhbWVfaGVhZCkgUE5HQVJHKChwbmdfc3RydWN0cCBwbmdfcHRyLAorICAgcG5nX2lu
Zm9wIGluZm9fcHRyKSk7CisjZW5kaWYKKwogI2lmIGRlZmluZWQoUE5HX1VOS05PV05fQ0hVTktT
X1NVUFBPUlRFRCkKIC8qIHByb3ZpZGUgYSBsaXN0IG9mIGNodW5rcyBhbmQgaG93IHRoZXkgYXJl
IHRvIGJlIGhhbmRsZWQsIGlmIHRoZSBidWlsdC1pbgogICAgaGFuZGxpbmcgb3IgZGVmYXVsdCB1
bmtub3duIGNodW5rIGhhbmRsaW5nIGlzIG5vdCBkZXNpcmVkLiAgQW55IGNodW5rcyBub3QKQEAg
LTI3NzEsNiArMjg5Myw4IEBACiAjZGVmaW5lIFBOR19CQUNLR1JPVU5EX0lTX0dSQVkgICAgIDB4
ODAwCiAjZGVmaW5lIFBOR19IQVZFX1BOR19TSUdOQVRVUkUgICAgMHgxMDAwCiAjZGVmaW5lIFBO
R19IQVZFX0NIVU5LX0FGVEVSX0lEQVQgMHgyMDAwIC8qIEhhdmUgYW5vdGhlciBjaHVuayBhZnRl
ciBJREFUICovCisjZGVmaW5lIFBOR19IQVZFX2FjVEwgICAgICAgICAgICAgMHg0MDAwCisjZGVm
aW5lIFBOR19IQVZFX2ZjVEwgICAgICAgICAgICAgMHg4MDAwTAogCiAvKiBmbGFncyBmb3IgdGhl
IHRyYW5zZm9ybWF0aW9ucyB0aGUgUE5HIGxpYnJhcnkgZG9lcyBvbiB0aGUgaW1hZ2UgZGF0YSAq
LwogI2RlZmluZSBQTkdfQkdSICAgICAgICAgICAgICAgIDB4MDAwMQpAQCAtMjkxMSw2ICszMDM1
LDkgQEAKICNkZWZpbmUgUE5HX3RJTUUgcG5nX2J5dGUgcG5nX3RJTUVbNV0gPSB7MTE2LCAgNzMs
ICA3NywgIDY5LCAnXDAnfQogI2RlZmluZSBQTkdfdFJOUyBwbmdfYnl0ZSBwbmdfdFJOU1s1XSA9
IHsxMTYsICA4MiwgIDc4LCAgODMsICdcMCd9CiAjZGVmaW5lIFBOR196VFh0IHBuZ19ieXRlIHBu
Z196VFh0WzVdID0gezEyMiwgIDg0LCAgODgsIDExNiwgJ1wwJ30KKyNkZWZpbmUgUE5HX2FjVEwg
cG5nX2J5dGUgcG5nX2FjVExbNV0gPSB7IDk3LCAgOTksICA4NCwgIDc2LCAnXDAnfQorI2RlZmlu
ZSBQTkdfZmNUTCBwbmdfYnl0ZSBwbmdfZmNUTFs1XSA9IHsxMDIsICA5OSwgIDg0LCAgNzYsICdc
MCd9CisjZGVmaW5lIFBOR19mZEFUIHBuZ19ieXRlIHBuZ19mZEFUWzVdID0gezEwMiwgMTAwLCAg
NjUsICA4NCwgJ1wwJ30KIAogI2lmZGVmIFBOR19VU0VfR0xPQkFMX0FSUkFZUwogUE5HX0VYUE9S
VF9WQVIgKHBuZ19ieXRlIEZBUkRBVEEpIHBuZ19JSERSWzVdOwpAQCAtMjkzNCw2ICszMDYxLDkg
QEAKIFBOR19FWFBPUlRfVkFSIChwbmdfYnl0ZSBGQVJEQVRBKSBwbmdfdElNRVs1XTsKIFBOR19F
WFBPUlRfVkFSIChwbmdfYnl0ZSBGQVJEQVRBKSBwbmdfdFJOU1s1XTsKIFBOR19FWFBPUlRfVkFS
IChwbmdfYnl0ZSBGQVJEQVRBKSBwbmdfelRYdFs1XTsKK1BOR19FWFBPUlRfVkFSIChwbmdfYnl0
ZSBGQVJEQVRBKSBwbmdfYWNUTFs1XTsKK1BOR19FWFBPUlRfVkFSIChwbmdfYnl0ZSBGQVJEQVRB
KSBwbmdfZmNUTFs1XTsKK1BOR19FWFBPUlRfVkFSIChwbmdfYnl0ZSBGQVJEQVRBKSBwbmdfZmRB
VFs1XTsKICNlbmRpZiAvKiBQTkdfVVNFX0dMT0JBTF9BUlJBWVMgKi8KIAogI2lmIGRlZmluZWQo
UE5HXzFfMF9YKSB8fCBkZWZpbmVkIChQTkdfMV8yX1gpCkBAIC0zMjA4LDYgKzMzMzgsMTcgQEAK
ICNlbmRpZgogI2VuZGlmCiAKKyNpZiBkZWZpbmVkKFBOR19XUklURV9BUE5HX1NVUFBPUlRFRCkK
K1BOR19FWFRFUk4gdm9pZCBwbmdfd3JpdGVfYWNUTCBQTkdBUkcoKHBuZ19zdHJ1Y3RwIHBuZ19w
dHIsCisgICBwbmdfdWludF8zMiBudW1fZnJhbWVzLCBwbmdfdWludF8zMiBudW1fcGxheXMpKTsK
KworUE5HX0VYVEVSTiB2b2lkIHBuZ193cml0ZV9mY1RMIFBOR0FSRygocG5nX3N0cnVjdHAgcG5n
X3B0ciwgCisgICBwbmdfdWludF8zMiB3aWR0aCwgcG5nX3VpbnRfMzIgaGVpZ2h0LCAKKyAgIHBu
Z191aW50XzMyIHhfb2Zmc2V0LCBwbmdfdWludF8zMiB5X29mZnNldCwgCisgICBwbmdfdWludF8x
NiBkZWxheV9udW0sIHBuZ191aW50XzE2IGRlbGF5X2RlbiwKKyAgIHBuZ19ieXRlIGRpc3Bvc2Vf
b3AsIHBuZ19ieXRlIGJsZW5kX29wKSk7CisjZW5kaWYKKwogLyogQ2FsbGVkIHdoZW4gZmluaXNo
ZWQgcHJvY2Vzc2luZyBhIHJvdyBvZiBkYXRhICovCiBQTkdfRVhURVJOIHZvaWQgcG5nX3dyaXRl
X2ZpbmlzaF9yb3cgUE5HQVJHKChwbmdfc3RydWN0cCBwbmdfcHRyKSk7CiAKQEAgLTMyNTksNiAr
MzQwMCwyMCBAQAogUE5HX0VYVEVSTiB2b2lkIHBuZ19yZWFkX3RyYW5zZm9ybV9pbmZvIFBOR0FS
RygocG5nX3N0cnVjdHAgcG5nX3B0ciwKICAgIHBuZ19pbmZvcCBpbmZvX3B0cikpOwogCisjaWYg
ZGVmaW5lZChQTkdfUkVBRF9BUE5HX1NVUFBPUlRFRCkKKy8qIHByaXZhdGUsIHJlc2V0IHNvbWUg
dGhpbmdzIHRvIGJlY29tZSByZWFkeSBmb3IgcmVhZGluZyBuZXh0IGZyYW1lICovCitQTkdfRVhU
RVJOIHZvaWQgcG5nX3JlYWRfcmVzZXQgUE5HQVJHKChwbmdfc3RydWN0cCBwbmdfcHRyKSk7CitQ
TkdfRVhURVJOIHZvaWQgcG5nX3JlYWRfcmVpbml0IFBOR0FSRygocG5nX3N0cnVjdHAgcG5nX3B0
ciwKKyAgIHBuZ19pbmZvcCBpbmZvX3B0cikpOworUE5HX0VYVEVSTiB2b2lkIHBuZ19wcm9ncmVz
c2l2ZV9yZWFkX3Jlc2V0IFBOR0FSRygocG5nX3N0cnVjdHAgcG5nX3B0cikpOworI2VuZGlmCisj
aWYgZGVmaW5lZChQTkdfV1JJVEVfQVBOR19TVVBQT1JURUQpCisvKiBwcml2YXRlLCByZXNldCBz
b21lIHRoaW5ncyB0byBiZWNvbWUgcmVhZHkgZm9yIHdyaXRpbmcgbmV4dCBmcmFtZSAqLworUE5H
X0VYVEVSTiB2b2lkIHBuZ193cml0ZV9yZXNldCBQTkdBUkcoKHBuZ19zdHJ1Y3RwIHBuZ19wdHIp
KTsKK1BOR19FWFRFUk4gdm9pZCBwbmdfd3JpdGVfcmVpbml0IFBOR0FSRygocG5nX3N0cnVjdHAg
cG5nX3B0ciwgCisgICBwbmdfaW5mb3AgaW5mb19wdHIsIHBuZ191aW50XzMyIHdpZHRoLCBwbmdf
dWludF8zMiBoZWlnaHQpKTsKKyNlbmRpZgorCiAvKiB0aGVzZSBhcmUgdGhlIGZ1bmN0aW9ucyB0
aGF0IGRvIHRoZSB0cmFuc2Zvcm1hdGlvbnMgKi8KICNpZiBkZWZpbmVkKFBOR19SRUFEX0ZJTExF
Ul9TVVBQT1JURUQpCiBQTkdfRVhURVJOIHZvaWQgcG5nX2RvX3JlYWRfZmlsbGVyIFBOR0FSRygo
cG5nX3Jvd19pbmZvcCByb3dfaW5mbywKQEAgLTM0NzQsNiArMzYyOSwxOCBAQAogICAgcG5nX3Vp
bnRfMzIgbGVuZ3RoKSk7CiAjZW5kaWYKIAorI2lmIGRlZmluZWQoUE5HX1JFQURfQVBOR19TVVBQ
T1JURUQpCitQTkdfRVhURVJOIHZvaWQgcG5nX2hhbmRsZV9hY1RMIFBOR0FSRygocG5nX3N0cnVj
dHAgcG5nX3B0ciwgcG5nX2luZm9wIGluZm9fcHRyLAorICAgcG5nX3VpbnRfMzIgbGVuZ3RoKSk7
CitQTkdfRVhURVJOIHZvaWQgcG5nX2hhbmRsZV9mY1RMIFBOR0FSRygocG5nX3N0cnVjdHAgcG5n
X3B0ciwgcG5nX2luZm9wIGluZm9fcHRyLAorICAgcG5nX3VpbnRfMzIgbGVuZ3RoKSk7CitQTkdf
RVhURVJOIHZvaWQgcG5nX2hhdmVfaW5mbyBQTkdBUkcoKHBuZ19zdHJ1Y3RwIHBuZ19wdHIsIHBu
Z19pbmZvcCBpbmZvX3B0cikpOworUE5HX0VYVEVSTiB2b2lkIHBuZ19oYW5kbGVfZmRBVCBQTkdB
UkcoKHBuZ19zdHJ1Y3RwIHBuZ19wdHIsIHBuZ19pbmZvcCBpbmZvX3B0ciwKKyAgIHBuZ191aW50
XzMyIGxlbmd0aCkpOworUE5HX0VYVEVSTiB2b2lkIHBuZ19lbnN1cmVfc2VxdWVuY2VfbnVtYmVy
IFBOR0FSRygocG5nX3N0cnVjdHAgcG5nX3B0ciwgCisgICBwbmdfdWludF8zMiBsZW5ndGgpKTsK
KyNlbmRpZgorCiBQTkdfRVhURVJOIHZvaWQgcG5nX2hhbmRsZV91bmtub3duIFBOR0FSRygocG5n
X3N0cnVjdHAgcG5nX3B0ciwKICAgIHBuZ19pbmZvcCBpbmZvX3B0ciwgcG5nX3VpbnRfMzIgbGVu
Z3RoKSk7CiAKZGlmZiAtcnVOIGxpYnBuZy0xLjIuMzEvcG5nd3JpdGUuYy5vcmlnIGxpYnBuZy0x
LjIuMzEvcG5nd3JpdGUuYwotLS0gbGlicG5nLTEuMi4zMS9wbmd3cml0ZS5jLm9yaWcJMjAwOC0w
OC0yMyAyMTo0NTo1My4wMDAwMDAwMDAgKzAyMDAKKysrIGxpYnBuZy0xLjIuMzEvcG5nd3JpdGUu
YwkyMDA4LTA4LTIzIDIxOjQ4OjEzLjAwMDAwMDAwMCArMDIwMApAQCAtMjYzLDYgKzI2MywxMCBA
QAogICAgICAgfQogICAgfQogI2VuZGlmCisjaWYgZGVmaW5lZChQTkdfV1JJVEVfQVBOR19TVVBQ
T1JURUQpCisgICBpZiAoaW5mb19wdHItPnZhbGlkICYgUE5HX0lORk9fYWNUTCkKKyAgICAgIHBu
Z193cml0ZV9hY1RMKHBuZ19wdHIsIGluZm9fcHRyLT5udW1fZnJhbWVzLCBpbmZvX3B0ci0+bnVt
X3BsYXlzKTsKKyNlbmRpZgogI2lmIGRlZmluZWQoUE5HX1dSSVRFX1VOS05PV05fQ0hVTktTX1NV
UFBPUlRFRCkKICAgIGlmIChpbmZvX3B0ci0+dW5rbm93bl9jaHVua3NfbnVtKQogICAgewpAQCAt
MzAxLDYgKzMwNSwxMCBAQAogICAgICAgcmV0dXJuOwogICAgaWYgKCEocG5nX3B0ci0+bW9kZSAm
IFBOR19IQVZFX0lEQVQpKQogICAgICAgcG5nX2Vycm9yKHBuZ19wdHIsICJObyBJREFUcyB3cml0
dGVuIGludG8gZmlsZSIpOworI2lmIGRlZmluZWQoUE5HX1dSSVRFX0FQTkdfU1VQUE9SVEVEKQor
ICAgaWYgKHBuZ19wdHItPm51bV9mcmFtZXNfd3JpdHRlbiAhPSBwbmdfcHRyLT5udW1fZnJhbWVz
X3RvX3dyaXRlKQorICAgICAgcG5nX2Vycm9yKHBuZ19wdHIsICJOb3QgZW5vdWdoIGZyYW1lcyB3
cml0dGVuIik7CisjZW5kaWYKIAogICAgLyogc2VlIGlmIHVzZXIgd2FudHMgdXMgdG8gd3JpdGUg
aW5mb3JtYXRpb24gY2h1bmtzICovCiAgICBpZiAoaW5mb19wdHIgIT0gTlVMTCkKQEAgLTE1NDQs
NCArMTU1MiwzOSBAQAogICAgcGFyYW1zID0gcGFyYW1zOwogfQogI2VuZGlmCisKKyNpZiBkZWZp
bmVkKFBOR19XUklURV9BUE5HX1NVUFBPUlRFRCkKK3ZvaWQgUE5HQVBJCitwbmdfd3JpdGVfZnJh
bWVfaGVhZChwbmdfc3RydWN0cCBwbmdfcHRyLCBwbmdfaW5mb3AgaW5mb19wdHIsCisgICAgcG5n
X2J5dGVwcCByb3dfcG9pbnRlcnMsIHBuZ191aW50XzMyIHdpZHRoLCBwbmdfdWludF8zMiBoZWln
aHQsIAorICAgIHBuZ191aW50XzMyIHhfb2Zmc2V0LCBwbmdfdWludF8zMiB5X29mZnNldCwgCisg
ICAgcG5nX3VpbnRfMTYgZGVsYXlfbnVtLCBwbmdfdWludF8xNiBkZWxheV9kZW4sIHBuZ19ieXRl
IGRpc3Bvc2Vfb3AsCisgICAgcG5nX2J5dGUgYmxlbmRfb3ApCit7CisgICAgcG5nX2RlYnVnKDEs
ICJpbiBwbmdfd3JpdGVfZnJhbWVfaGVhZFxuIik7CisgICAgCisgICAgLyogdGhlcmUgaXMgYSBj
aGFuY2UgdGhpcyBoYXMgYmVlbiBzZXQgYWZ0ZXIgcG5nX3dyaXRlX2luZm8gd2FzIGNhbGxlZCwK
KyAgICAqIHNvIGl0IHdvdWxkIGJlIHNldCBidXQgbm90IHdyaXR0ZW4uIGlzIHRoZXJlIGEgd2F5
IHRvIGJlIHN1cmU/ICovCisgICAgaWYgKCEoaW5mb19wdHItPnZhbGlkICYgUE5HX0lORk9fYWNU
TCkpCisgICAgICAgIHBuZ19lcnJvcihwbmdfcHRyLCAicG5nX3dyaXRlX2ZyYW1lX2hlYWQoKTog
YWNUTCBub3Qgc2V0Iik7CisgICAgCisgICAgcG5nX3dyaXRlX3Jlc2V0KHBuZ19wdHIpOworICAg
IAorICAgIHBuZ193cml0ZV9yZWluaXQocG5nX3B0ciwgaW5mb19wdHIsIHdpZHRoLCBoZWlnaHQp
OworICAgIAorICAgIGlmICggIShwbmdfcHRyLT5udW1fZnJhbWVzX3dyaXR0ZW4gPT0gMCAmJiAK
KyAgICAgICAgICAgKHBuZ19wdHItPmFwbmdfZmxhZ3MgJiBQTkdfRklSU1RfRlJBTUVfSElEREVO
KSApICkKKyAgICAgICAgcG5nX3dyaXRlX2ZjVEwocG5nX3B0ciwgd2lkdGgsIGhlaWdodCwgeF9v
ZmZzZXQsIHlfb2Zmc2V0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgZGVsYXlfbnVtLCBkZWxh
eV9kZW4sIGRpc3Bvc2Vfb3AsIGJsZW5kX29wKTsKK30KKwordm9pZCBQTkdBUEkKK3BuZ193cml0
ZV9mcmFtZV90YWlsKHBuZ19zdHJ1Y3RwIHBuZ19wdHIsIHBuZ19pbmZvcCBwbmdfaW5mbykKK3sK
KyAgICBwbmdfZGVidWcoMSwgImluIHBuZ193cml0ZV9mcmFtZV90YWlsXG4iKTsKKyAgICAKKyAg
ICBwbmdfcHRyLT5udW1fZnJhbWVzX3dyaXR0ZW4rKzsKK30KKyNlbmRpZiAvKiBQTkdfV1JJVEVf
QVBOR19TVVBQT1JURUQgKi8KKwogI2VuZGlmIC8qIFBOR19XUklURV9TVVBQT1JURUQgKi8KZGlm
ZiAtcnVOIGxpYnBuZy0xLjIuMzEvcG5nY29uZi5oLm9yaWcgbGlicG5nLTEuMi4zMS9wbmdjb25m
LmgKLS0tIGxpYnBuZy0xLjIuMzEvcG5nY29uZi5oLm9yaWcJMjAwOC0wOC0yMyAyMTo0NjowNi4w
MDAwMDAwMDAgKzAyMDAKKysrIGxpYnBuZy0xLjIuMzEvcG5nY29uZi5oCTIwMDgtMDgtMjMgMjE6
NDg6MTMuMDAwMDAwMDAwICswMjAwCkBAIC05MjUsNiArOTI1LDEwIEBACiAjICBkZWZpbmUgUE5H
X1JFQURfelRYdF9TVVBQT1JURUQKICMgIGRlZmluZSBQTkdfelRYdF9TVVBQT1JURUQKICNlbmRp
ZgorI2lmbmRlZiBQTkdfTk9fUkVBRF9BUE5HCisjICBkZWZpbmUgUE5HX1JFQURfQVBOR19TVVBQ
T1JURUQKKyMgIGRlZmluZSBQTkdfQVBOR19TVVBQT1JURUQKKyNlbmRpZgogI2lmbmRlZiBQTkdf
Tk9fUkVBRF9VTktOT1dOX0NIVU5LUwogIyAgZGVmaW5lIFBOR19SRUFEX1VOS05PV05fQ0hVTktT
X1NVUFBPUlRFRAogIyAgaWZuZGVmIFBOR19VTktOT1dOX0NIVU5LU19TVVBQT1JURUQKQEAgLTEw
NjcsNiArMTA3MSwxMiBAQAogIyAgICBkZWZpbmUgUE5HX3pUWHRfU1VQUE9SVEVECiAjICBlbmRp
ZgogI2VuZGlmCisjaWZuZGVmIFBOR19OT19XUklURV9BUE5HCisjICBkZWZpbmUgUE5HX1dSSVRF
X0FQTkdfU1VQUE9SVEVECisjICBpZm5kZWYgUE5HX0FQTkdfU1VQUE9SVEVECisjICAgIGRlZmlu
ZSBQTkdfQVBOR19TVVBQT1JURUQKKyMgIGVuZGlmCisjZW5kaWYKICNpZm5kZWYgUE5HX05PX1dS
SVRFX1VOS05PV05fQ0hVTktTCiAjICBkZWZpbmUgUE5HX1dSSVRFX1VOS05PV05fQ0hVTktTX1NV
UFBPUlRFRAogIyAgaWZuZGVmIFBOR19VTktOT1dOX0NIVU5LU19TVVBQT1JURUQKZGlmZiAtcnVO
IGxpYnBuZy0xLjIuMzEvcG5ncHJlYWQuYy5vcmlnIGxpYnBuZy0xLjIuMzEvcG5ncHJlYWQuYwot
LS0gbGlicG5nLTEuMi4zMS9wbmdwcmVhZC5jLm9yaWcJMjAwOC0wOC0yMyAyMTo0NjoyNC4wMDAw
MDAwMDAgKzAyMDAKKysrIGxpYnBuZy0xLjIuMzEvcG5ncHJlYWQuYwkyMDA4LTA4LTIzIDIxOjQ4
OjEzLjAwMDAwMDAwMCArMDIwMApAQCAtMTkxLDYgKzE5MSwxMSBAQAogI2lmIGRlZmluZWQoUE5H
X1JFQURfelRYdF9TVVBQT1JURUQpCiAgICAgICBQTkdfQ09OU1QgUE5HX3pUWHQ7CiAjZW5kaWYK
KyNpZiBkZWZpbmVkKFBOR19SRUFEX0FQTkdfU1VQUE9SVEVEKQorICAgICAgUE5HX0NPTlNUIFBO
R19hY1RMOworICAgICAgUE5HX0NPTlNUIFBOR19mY1RMOworICAgICAgUE5HX0NPTlNUIFBOR19m
ZEFUOworI2VuZGlmCiAjZW5kaWYgLyogUE5HX1VTRV9MT0NBTF9BUlJBWVMgKi8KICAgIC8qIEZp
cnN0IHdlIG1ha2Ugc3VyZSB3ZSBoYXZlIGVub3VnaCBkYXRhIGZvciB0aGUgNCBieXRlIGNodW5r
IG5hbWUKICAgICAqIGFuZCB0aGUgNCBieXRlIGNodW5rIGxlbmd0aCBiZWZvcmUgcHJvY2VlZGlu
ZyB3aXRoIGRlY29kaW5nIHRoZQpAQCAtMjE1LDcgKzIyMCwxMDQgQEAKICAgICAgIHBuZ19jaGVj
a19jaHVua19uYW1lKHBuZ19wdHIsIHBuZ19wdHItPmNodW5rX25hbWUpOwogICAgICAgcG5nX3B0
ci0+bW9kZSB8PSBQTkdfSEFWRV9DSFVOS19IRUFERVI7CiAgICB9Ci0KKyAgIAorI2lmIGRlZmlu
ZWQoUE5HX1JFQURfQVBOR19TVVBQT1JURUQpCisgICBpZiAocG5nX3B0ci0+bnVtX2ZyYW1lc19y
ZWFkID4gMCAmJiAKKyAgICAgICBwbmdfcHRyLT5udW1fZnJhbWVzX3JlYWQgPCBpbmZvX3B0ci0+
bnVtX2ZyYW1lcykKKyAgIHsKKyAgICAgIGlmICghcG5nX21lbWNtcChwbmdfcHRyLT5jaHVua19u
YW1lLCBwbmdfSURBVCwgNCkpCisgICAgICB7CisgICAgICAgICAvKiBkaXNjYXJkIHRyYWlsaW5n
IElEQVRzIGZvciB0aGUgZmlyc3QgZnJhbWUgKi8KKyAgICAgICAgIGlmIChwbmdfcHRyLT5tb2Rl
ICYgUE5HX0hBVkVfZmNUTCB8fCBwbmdfcHRyLT5udW1fZnJhbWVzX3JlYWQgPiAxKQorICAgICAg
ICAgICAgcG5nX2Vycm9yKHBuZ19wdHIsICJvdXQgb2YgcGxhY2UgSURBVCIpOworICAgICAgICAg
CisgICAgICAgICBpZiAocG5nX3B0ci0+cHVzaF9sZW5ndGggKyA0ID4gcG5nX3B0ci0+YnVmZmVy
X3NpemUpCisgICAgICAgICB7CisgICAgICAgICAgICBwbmdfcHVzaF9zYXZlX2J1ZmZlcihwbmdf
cHRyKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgIH0KKyAgICAgICAgIHBuZ19wdXNo
X2NyY19za2lwKHBuZ19wdHIsIHBuZ19wdHItPnB1c2hfbGVuZ3RoKTsKKyAgICAgICAgIHBuZ19w
dHItPm1vZGUgJj0gflBOR19IQVZFX0NIVU5LX0hFQURFUjsKKyAgICAgICAgIHJldHVybjsKKyAg
ICAgIH0KKyAgICAgIGVsc2UgaWYgKCFwbmdfbWVtY21wKHBuZ19wdHItPmNodW5rX25hbWUsIHBu
Z19mZEFULCA0KSkKKyAgICAgIHsKKyAgICAgICAgIGlmIChwbmdfcHRyLT5idWZmZXJfc2l6ZSA8
IDQpCisgICAgICAgICB7CisgICAgICAgICAgICBwbmdfcHVzaF9zYXZlX2J1ZmZlcihwbmdfcHRy
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgIH0KKyAgICAgICAgIHBuZ19lbnN1cmVf
c2VxdWVuY2VfbnVtYmVyKHBuZ19wdHIsIDQpOworICAgICAgICAgCisgICAgICAgICBpZiAoIShw
bmdfcHRyLT5tb2RlICYgUE5HX0hBVkVfZmNUTCkpCisgICAgICAgICB7CisgICAgICAgICAgICAv
KiBkaXNjYXJkIHRyYWlsaW5nIGZkQVRzIGZvciBmcmFtZXMgb3RoZXIgdGhhbiB0aGUgZmlyc3Qg
Ki8KKyAgICAgICAgICAgIGlmIChwbmdfcHRyLT5udW1fZnJhbWVzX3JlYWQgPCAyKQorICAgICAg
ICAgICAgICAgcG5nX2Vycm9yKHBuZ19wdHIsICJvdXQgb2YgcGxhY2UgZmRBVCIpOworICAgICAg
ICAgICAgCisgICAgICAgICAgICBpZiAocG5nX3B0ci0+cHVzaF9sZW5ndGggKyA0ID4gcG5nX3B0
ci0+YnVmZmVyX3NpemUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICBwbmdfcHVzaF9z
YXZlX2J1ZmZlcihwbmdfcHRyKTsKKyAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIHBuZ19wdXNoX2NyY19za2lwKHBuZ19wdHIsIHBuZ19wdHItPnB1c2hf
bGVuZ3RoKTsKKyAgICAgICAgICAgIHBuZ19wdHItPm1vZGUgJj0gflBOR19IQVZFX0NIVU5LX0hF
QURFUjsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgIH0KKyAgICAgICAgIGVsc2UKKyAg
ICAgICAgIHsKKyAgICAgICAgICAgIC8qIGZyYW1lIGRhdGEgZm9sbG93cyAqLworICAgICAgICAg
ICAgcG5nX3B0ci0+aWRhdF9zaXplID0gcG5nX3B0ci0+cHVzaF9sZW5ndGggLSA0OworICAgICAg
ICAgICAgcG5nX3B0ci0+bW9kZSB8PSBQTkdfSEFWRV9JREFUOworICAgICAgICAgICAgcG5nX3B0
ci0+cHJvY2Vzc19tb2RlID0gUE5HX1JFQURfSURBVF9NT0RFOworICAgICAgICAgICAgCisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgICB9CisgICAgICB9CisgICAgICBlbHNlIGlmKCFwbmdf
bWVtY21wKHBuZ19wdHItPmNodW5rX25hbWUsIHBuZ19mY1RMLCA0KSkKKyAgICAgIHsKKyAgICAg
ICAgIGlmIChwbmdfcHRyLT5wdXNoX2xlbmd0aCArIDQgPiBwbmdfcHRyLT5idWZmZXJfc2l6ZSkK
KyAgICAgICAgIHsKKyAgICAgICAgICAgIHBuZ19wdXNoX3NhdmVfYnVmZmVyKHBuZ19wdHIpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgfQorICAgICAgICAgCisgICAgICAgICBwbmdf
cmVhZF9yZXNldChwbmdfcHRyKTsKKyAgICAgICAgIHBuZ19wdHItPm1vZGUgJj0gflBOR19IQVZF
X2ZjVEw7CisgICAgICAgICAKKyAgICAgICAgIHBuZ19oYW5kbGVfZmNUTChwbmdfcHRyLCBpbmZv
X3B0ciwgcG5nX3B0ci0+cHVzaF9sZW5ndGgpOworICAgICAgICAgCisgICAgICAgICBpZiAoIShw
bmdfcHRyLT5tb2RlICYgUE5HX0hBVkVfZmNUTCkpCisgICAgICAgICAgICBwbmdfZXJyb3IocG5n
X3B0ciwgIm1pc3NpbmcgcmVxdWlyZWQgZmNUTCBjaHVuayIpOworICAgICAgICAgCisgICAgICAg
ICBwbmdfcmVhZF9yZWluaXQocG5nX3B0ciwgaW5mb19wdHIpOworICAgICAgICAgcG5nX3Byb2dy
ZXNzaXZlX3JlYWRfcmVzZXQocG5nX3B0cik7CisgICAgICAgICAKKyAgICAgICAgIGlmIChwbmdf
cHRyLT5mcmFtZV9pbmZvX2ZuICE9IE5VTEwpCisgICAgICAgICAgICAoKihwbmdfcHRyLT5mcmFt
ZV9pbmZvX2ZuKSkocG5nX3B0ciwgcG5nX3B0ci0+bnVtX2ZyYW1lc19yZWFkKTsKKyAgICAgICAg
IAorICAgICAgICAgcG5nX3B0ci0+bW9kZSAmPSB+UE5HX0hBVkVfQ0hVTktfSEVBREVSOworICAg
ICAgICAgCisgICAgICAgICByZXR1cm47CisgICAgICB9CisgICAgICBlbHNlCisgICAgICB7Cisg
ICAgICAgICBpZiAocG5nX3B0ci0+cHVzaF9sZW5ndGggKyA0ID4gcG5nX3B0ci0+YnVmZmVyX3Np
emUpCisgICAgICAgICB7CisgICAgICAgICAgICBwbmdfcHVzaF9zYXZlX2J1ZmZlcihwbmdfcHRy
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgIH0KKyAgICAgICAgIHBuZ193YXJuaW5n
KHBuZ19wdHIsICJTa2lwcGVkIChpZ25vcmVkKSBhIGNodW5rICIKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJiZXR3ZWVuIEFQTkcgY2h1bmtzIik7CisgICAgICAgICBwbmdfcHVzaF9j
cmNfc2tpcChwbmdfcHRyLCBwbmdfcHRyLT5wdXNoX2xlbmd0aCk7CisgICAgICAgICBwbmdfcHRy
LT5tb2RlICY9IH5QTkdfSEFWRV9DSFVOS19IRUFERVI7CisgICAgICAgICByZXR1cm47CisgICAg
ICB9CisgICAgICAKKyAgICAgIHJldHVybjsKKyAgIH0KKyNlbmRpZiAvKiBQTkdfUkVBRF9BUE5H
X1NVUFBPUlRFRCAqLworICAgCiAgICBpZiAoIXBuZ19tZW1jbXAocG5nX3B0ci0+Y2h1bmtfbmFt
ZSwgcG5nX0lEQVQsIDQpKQogICAgICBpZiAocG5nX3B0ci0+bW9kZSAmIFBOR19BRlRFUl9JREFU
KQogICAgICAgICBwbmdfcHRyLT5tb2RlIHw9IFBOR19IQVZFX0NIVU5LX0FGVEVSX0lEQVQ7CkBA
IC0yOTcsNiArMzk5LDkgQEAKICAgICAgICAgICAgIHBuZ19lcnJvcihwbmdfcHRyLCAiVG9vIG1h
bnkgSURBVCdzIGZvdW5kIik7CiAgICAgICB9CiAKKyNpZiBkZWZpbmVkKFBOR19SRUFEX0FQTkdf
U1VQUE9SVEVEKQorICAgICAgcG5nX2hhdmVfaW5mbyhwbmdfcHRyLCBpbmZvX3B0cik7CisjZW5k
aWYKICAgICAgIHBuZ19wdHItPmlkYXRfc2l6ZSA9IHBuZ19wdHItPnB1c2hfbGVuZ3RoOwogICAg
ICAgcG5nX3B0ci0+bW9kZSB8PSBQTkdfSEFWRV9JREFUOwogICAgICAgcG5nX3B0ci0+cHJvY2Vz
c19tb2RlID0gUE5HX1JFQURfSURBVF9NT0RFOwpAQCAtNDkyLDYgKzU5NywzNSBAQAogICAgICAg
cG5nX3B1c2hfaGFuZGxlX2lUWHQocG5nX3B0ciwgaW5mb19wdHIsIHBuZ19wdHItPnB1c2hfbGVu
Z3RoKTsKICAgIH0KICNlbmRpZgorI2lmIGRlZmluZWQoUE5HX1JFQURfQVBOR19TVVBQT1JURUQp
CisgICBlbHNlIGlmICghcG5nX21lbWNtcChwbmdfcHRyLT5jaHVua19uYW1lLCBwbmdfYWNUTCwg
NCkpCisgICB7CisgICAgICBpZiAocG5nX3B0ci0+cHVzaF9sZW5ndGggKyA0ID4gcG5nX3B0ci0+
YnVmZmVyX3NpemUpCisgICAgICB7CisgICAgICAgICBwbmdfcHVzaF9zYXZlX2J1ZmZlcihwbmdf
cHRyKTsKKyAgICAgICAgIHJldHVybjsKKyAgICAgIH0KKyAgICAgIHBuZ19oYW5kbGVfYWNUTChw
bmdfcHRyLCBpbmZvX3B0ciwgcG5nX3B0ci0+cHVzaF9sZW5ndGgpOworICAgfQorICAgZWxzZSBp
ZiAoIXBuZ19tZW1jbXAocG5nX3B0ci0+Y2h1bmtfbmFtZSwgcG5nX2ZjVEwsIDQpKQorICAgewor
ICAgICAgaWYgKHBuZ19wdHItPnB1c2hfbGVuZ3RoICsgNCA+IHBuZ19wdHItPmJ1ZmZlcl9zaXpl
KQorICAgICAgeworICAgICAgICAgcG5nX3B1c2hfc2F2ZV9idWZmZXIocG5nX3B0cik7CisgICAg
ICAgICByZXR1cm47CisgICAgICB9CisgICAgICBwbmdfaGFuZGxlX2ZjVEwocG5nX3B0ciwgaW5m
b19wdHIsIHBuZ19wdHItPnB1c2hfbGVuZ3RoKTsKKyAgIH0KKyAgIGVsc2UgaWYgKCFwbmdfbWVt
Y21wKHBuZ19wdHItPmNodW5rX25hbWUsIHBuZ19mZEFULCA0KSkKKyAgIHsKKyAgICAgIGlmIChw
bmdfcHRyLT5wdXNoX2xlbmd0aCArIDQgPiBwbmdfcHRyLT5idWZmZXJfc2l6ZSkKKyAgICAgIHsK
KyAgICAgICAgIHBuZ19wdXNoX3NhdmVfYnVmZmVyKHBuZ19wdHIpOworICAgICAgICAgcmV0dXJu
OworICAgICAgfQorICAgICAgcG5nX2hhbmRsZV9mZEFUKHBuZ19wdHIsIGluZm9fcHRyLCBwbmdf
cHRyLT5wdXNoX2xlbmd0aCk7CisgICB9CisjZW5kaWYgLyogUE5HX1JFQURfQVBOR19TVVBQT1JU
RUQgKi8KICAgIGVsc2UKICAgIHsKICAgICAgIGlmIChwbmdfcHRyLT5wdXNoX2xlbmd0aCArIDQg
PiBwbmdfcHRyLT5idWZmZXJfc2l6ZSkKQEAgLTY2MiwxMyArNzk2LDE3IEBACiBwbmdfcHVzaF9y
ZWFkX0lEQVQocG5nX3N0cnVjdHAgcG5nX3B0cikKIHsKICNpZmRlZiBQTkdfVVNFX0xPQ0FMX0FS
UkFZUwotICAgUE5HX0NPTlNUIFBOR19JREFUOworICAgUE5HX0lEQVQ7CisjaWYgZGVmaW5lZChQ
TkdfUkVBRF9BUE5HX1NVUFBPUlRFRCkKKyAgIFBOR19mZEFUOworICAgUE5HX0lFTkQ7CisjZW5k
aWYKICNlbmRpZgogICAgaWYgKCEocG5nX3B0ci0+bW9kZSAmIFBOR19IQVZFX0NIVU5LX0hFQURF
UikpCiAgICB7CiAgICAgICBwbmdfYnl0ZSBjaHVua19sZW5ndGhbNF07CiAKLSAgICAgIGlmIChw
bmdfcHRyLT5idWZmZXJfc2l6ZSA8IDgpCisgICAgICBpZiAocG5nX3B0ci0+YnVmZmVyX3NpemUg
PCAxMikKICAgICAgIHsKICAgICAgICAgIHBuZ19wdXNoX3NhdmVfYnVmZmVyKHBuZ19wdHIpOwog
ICAgICAgICAgcmV0dXJuOwpAQCAtNjgwLDE1ICs4MTgsNTkgQEAKICAgICAgIHBuZ19jcmNfcmVh
ZChwbmdfcHRyLCBwbmdfcHRyLT5jaHVua19uYW1lLCA0KTsKICAgICAgIHBuZ19wdHItPm1vZGUg
fD0gUE5HX0hBVkVfQ0hVTktfSEVBREVSOwogCi0gICAgICBpZiAocG5nX21lbWNtcChwbmdfcHRy
LT5jaHVua19uYW1lLCBwbmdfSURBVCwgNCkpCisjaWYgZGVmaW5lZChQTkdfUkVBRF9BUE5HX1NV
UFBPUlRFRCkKKyAgICAgIGlmIChwbmdfbWVtY21wKHBuZ19wdHItPmNodW5rX25hbWUsIChwbmdf
Ynl0ZXApcG5nX2ZkQVQsIDQpCisgICAgICAgICAgJiYgcG5nX3B0ci0+bnVtX2ZyYW1lc19yZWFk
ID4gMCkKKyAgICAgIHsKKyAgICAgICAgICBpZiAocG5nX3B0ci0+ZmxhZ3MgJiBQTkdfRkxBR19a
TElCX0ZJTklTSEVEKQorICAgICAgICAgIHsKKyAgICAgICAgICAgICAgcG5nX3B0ci0+cHJvY2Vz
c19tb2RlID0gUE5HX1JFQURfQ0hVTktfTU9ERTsKKyAgICAgICAgICAgICAgaWYgKHBuZ19wdHIt
PmZyYW1lX2VuZF9mbiAhPSBOVUxMKQorICAgICAgICAgICAgICAgICAoKihwbmdfcHRyLT5mcmFt
ZV9lbmRfZm4pKShwbmdfcHRyLCBwbmdfcHRyLT5udW1fZnJhbWVzX3JlYWQpOworICAgICAgICAg
ICAgICBwbmdfcHRyLT5udW1fZnJhbWVzX3JlYWQrKzsKKyAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgIH0KKyAgICAgICAgICBlbHNlCisgICAgICAgICAgeworICAgICAgICAgICAgICBp
ZiAoIXBuZ19tZW1jbXAocG5nX3B0ci0+Y2h1bmtfbmFtZSwgcG5nX0lFTkQsIDQpKQorICAgICAg
ICAgICAgICAgICAgcG5nX2Vycm9yKHBuZ19wdHIsICJOb3QgZW5vdWdoIGltYWdlIGRhdGEiKTsK
KyAgICAgICAgICAgICAgaWYgKHBuZ19wdHItPnB1c2hfbGVuZ3RoICsgNCA+IHBuZ19wdHItPmJ1
ZmZlcl9zaXplKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIHBuZ19wdXNoX3Nh
dmVfYnVmZmVyKHBuZ19wdHIpOworICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgcG5nX3dhcm5pbmcocG5nX3B0ciwgIlNraXBwaW5nIChpZ25v
cmluZykgYSBjaHVuayBiZXR3ZWVuICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIkFQTkcgY2h1bmtzIik7CisgICAgICAgICAgICAgIHBuZ19jcmNfZmluaXNoKHBuZ19wdHIs
IHBuZ19wdHItPnB1c2hfbGVuZ3RoKTsKKyAgICAgICAgICAgICAgcG5nX3B0ci0+bW9kZSAmPSB+
UE5HX0hBVkVfQ0hVTktfSEVBREVSOworICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
fQorICAgICAgfQorICAgICAgZWxzZSAKKyNlbmRpZgorICAgICAgaWYgKCBwbmdfbWVtY21wKHBu
Z19wdHItPmNodW5rX25hbWUsIHBuZ19JREFULCA0KQorICAgICAgICAgICAgICAgICYmIChwbmdf
cHRyLT5udW1fZnJhbWVzX3JlYWQgPT0gMCkgKQogICAgICAgewogICAgICAgICAgcG5nX3B0ci0+
cHJvY2Vzc19tb2RlID0gUE5HX1JFQURfQ0hVTktfTU9ERTsKICAgICAgICAgIGlmICghKHBuZ19w
dHItPmZsYWdzICYgUE5HX0ZMQUdfWkxJQl9GSU5JU0hFRCkpCiAgICAgICAgICAgICBwbmdfZXJy
b3IocG5nX3B0ciwgIk5vdCBlbm91Z2ggY29tcHJlc3NlZCBkYXRhIik7CisjaWYgZGVmaW5lZChQ
TkdfUkVBRF9BUE5HX1NVUFBPUlRFRCkKKyAgICAgICAgIGlmIChwbmdfcHRyLT5mcmFtZV9lbmRf
Zm4gIT0gTlVMTCkKKyAgICAgICAgICAgICgqKHBuZ19wdHItPmZyYW1lX2VuZF9mbikpKHBuZ19w
dHIsIHBuZ19wdHItPm51bV9mcmFtZXNfcmVhZCk7CisgICAgICAgICBwbmdfcHRyLT5udW1fZnJh
bWVzX3JlYWQrKzsKKyNlbmRpZgogICAgICAgICAgcmV0dXJuOwogICAgICAgfQogCiAgICAgICBw
bmdfcHRyLT5pZGF0X3NpemUgPSBwbmdfcHRyLT5wdXNoX2xlbmd0aDsKKyAgICAgIAorI2lmIGRl
ZmluZWQoUE5HX1JFQURfQVBOR19TVVBQT1JURUQpCisgICAgICBpZihwbmdfcHRyLT5udW1fZnJh
bWVzX3JlYWQgPiAwKQorICAgICAgeworICAgICAgICAgcG5nX2Vuc3VyZV9zZXF1ZW5jZV9udW1i
ZXIocG5nX3B0ciwgNCk7CisgICAgICAgICBwbmdfcHRyLT5pZGF0X3NpemUgLT0gNDsKKyAgICAg
IH0KKyNlbmRpZgogICAgfQogICAgaWYgKHBuZ19wdHItPmlkYXRfc2l6ZSAmJiBwbmdfcHRyLT5z
YXZlX2J1ZmZlcl9zaXplKQogICAgewpAQCAtMTU4NSw2ICsxNzY3LDE3IEBACiAgICBwbmdfc2V0
X3JlYWRfZm4ocG5nX3B0ciwgcHJvZ3Jlc3NpdmVfcHRyLCBwbmdfcHVzaF9maWxsX2J1ZmZlcik7
CiB9CiAKKyNpZiBkZWZpbmVkKFBOR19SRUFEX0FQTkdfU1VQUE9SVEVEKQordm9pZCBQTkdBUEkK
K3BuZ19zZXRfcHJvZ3Jlc3NpdmVfZnJhbWVfZm4ocG5nX3N0cnVjdHAgcG5nX3B0ciwKKyAgIHBu
Z19wcm9ncmVzc2l2ZV9mcmFtZV9wdHIgZnJhbWVfaW5mb19mbiwKKyAgIHBuZ19wcm9ncmVzc2l2
ZV9mcmFtZV9wdHIgZnJhbWVfZW5kX2ZuKQoreworICAgcG5nX3B0ci0+ZnJhbWVfaW5mb19mbiA9
IGZyYW1lX2luZm9fZm47CisgICBwbmdfcHRyLT5mcmFtZV9lbmRfZm4gPSBmcmFtZV9lbmRfZm47
Cit9CisjZW5kaWYKKwogcG5nX3ZvaWRwIFBOR0FQSQogcG5nX2dldF9wcm9ncmVzc2l2ZV9wdHIo
cG5nX3N0cnVjdHAgcG5nX3B0cikKIHsKZGlmZiAtcnVOIGxpYnBuZy0xLjIuMzEvcG5nc2V0LmMu
b3JpZyBsaWJwbmctMS4yLjMxL3BuZ3NldC5jCi0tLSBsaWJwbmctMS4yLjMxL3BuZ3NldC5jLm9y
aWcJMjAwOC0wOC0yMyAyMTo0NjozOC4wMDAwMDAwMDAgKzAyMDAKKysrIGxpYnBuZy0xLjIuMzEv
cG5nc2V0LmMJMjAwOC0wOC0yMyAyMTo0ODoxMy4wMDAwMDAwMDAgKzAyMDAKQEAgLTM2Myw2ICsz
NjMsMTEgQEAKICAgICAgIGluZm9fcHRyLT5yb3dieXRlcyA9IChwbmdfc2l6ZV90KTA7CiAgICBl
bHNlCiAgICAgICBpbmZvX3B0ci0+cm93Ynl0ZXMgPSBQTkdfUk9XQllURVMoaW5mb19wdHItPnBp
eGVsX2RlcHRoLCB3aWR0aCk7CisgICAKKyNpZiBkZWZpbmVkKFBOR19BUE5HX1NVUFBPUlRFRCkK
KyAgIC8qIGZvciBub24tYW5pbWF0ZWQgcG5nLiB0aGlzIG1heSBiZSBvdmVycml0dGVuIGZyb20g
YW4gYWNUTCBjaHVuayBsYXRlciAqLworICAgaW5mb19wdHItPm51bV9mcmFtZXMgPSAxOworI2Vu
ZGlmCiB9CiAKICNpZiBkZWZpbmVkKFBOR19vRkZzX1NVUFBPUlRFRCkKQEAgLTEwNDMsNiArMTA0
OCwxNDEgQEAKIH0KICNlbmRpZiAvKiBQTkdfc1BMVF9TVVBQT1JURUQgKi8KIAorI2lmIGRlZmlu
ZWQoUE5HX0FQTkdfU1VQUE9SVEVEKQorcG5nX3VpbnRfMzIgUE5HQVBJCitwbmdfc2V0X2FjVEwo
cG5nX3N0cnVjdHAgcG5nX3B0ciwgcG5nX2luZm9wIGluZm9fcHRyLCAKKyAgICBwbmdfdWludF8z
MiBudW1fZnJhbWVzLCBwbmdfdWludF8zMiBudW1fcGxheXMpCit7CisgICAgcG5nX2RlYnVnMSgx
LCAiaW4gJXMgc3RvcmFnZSBmdW5jdGlvblxuIiwgImFjVEwiKTsKKworICAgIGlmIChwbmdfcHRy
ID09IE5VTEwgfHwgaW5mb19wdHIgPT0gTlVMTCkKKyAgICB7CisgICAgICAgIHBuZ193YXJuaW5n
KHBuZ19wdHIsIAorICAgICAgICAgICAgICAgICAgICAiQ2FsbCB0byBwbmdfc2V0X2FjVEwoKSB3
aXRoIE5VTEwgcG5nX3B0ciAiCisgICAgICAgICAgICAgICAgICAgICJvciBpbmZvX3B0ciBpZ25v
cmVkIik7CisgICAgICAgIHJldHVybiAoMCk7CisgICAgfQorICAgIGlmIChudW1fZnJhbWVzID09
IDApCisgICAgeworICAgICAgICBwbmdfd2FybmluZyhwbmdfcHRyLCAKKyAgICAgICAgICAgICAg
ICAgICAgIklnbm9yaW5nIGF0dGVtcHQgdG8gc2V0IGFjVEwgd2l0aCBudW1fZnJhbWVzIHplcm8i
KTsKKyAgICAgICAgcmV0dXJuICgwKTsKKyAgICB9CisgICAgaWYgKG51bV9mcmFtZXMgPiBQTkdf
VUlOVF8zMV9NQVgpCisgICAgeworICAgICAgICBwbmdfd2FybmluZyhwbmdfcHRyLCAKKyAgICAg
ICAgICAgICAgICAgICAgIklnbm9yaW5nIGF0dGVtcHQgdG8gc2V0IGFjVEwgd2l0aCBudW1fZnJh
bWVzID4gMl4zMS0xIik7CisgICAgICAgIHJldHVybiAoMCk7CisgICAgfQorICAgIGlmIChudW1f
cGxheXMgPiBQTkdfVUlOVF8zMV9NQVgpCisgICAgeworICAgICAgICBwbmdfd2FybmluZyhwbmdf
cHRyLCAKKyAgICAgICAgICAgICAgICAgICAgIklnbm9yaW5nIGF0dGVtcHQgdG8gc2V0IGFjVEwg
d2l0aCBudW1fcGxheXMgIgorICAgICAgICAgICAgICAgICAgICAiPiAyXjMxLTEiKTsKKyAgICAg
ICAgcmV0dXJuICgwKTsKKyAgICB9CisgICAgCisgICAgaW5mb19wdHItPm51bV9mcmFtZXMgPSBu
dW1fZnJhbWVzOworICAgIGluZm9fcHRyLT5udW1fcGxheXMgPSBudW1fcGxheXM7CisgICAgCisg
ICAgaW5mb19wdHItPnZhbGlkIHw9IFBOR19JTkZPX2FjVEw7CisgICAgCisgICAgcmV0dXJuICgx
KTsKK30KKworLyogZGVsYXlfbnVtIGFuZCBkZWxheV9kZW4gY2FuIGhvbGQgYW55IDE2LWJpdCB2
YWx1ZXMgaW5jbHVkaW5nIHplcm8gKi8KK3BuZ191aW50XzMyIFBOR0FQSQorcG5nX3NldF9uZXh0
X2ZyYW1lX2ZjVEwocG5nX3N0cnVjdHAgcG5nX3B0ciwgcG5nX2luZm9wIGluZm9fcHRyLCAKKyAg
ICBwbmdfdWludF8zMiB3aWR0aCwgcG5nX3VpbnRfMzIgaGVpZ2h0LAorICAgIHBuZ191aW50XzMy
IHhfb2Zmc2V0LCBwbmdfdWludF8zMiB5X29mZnNldCwKKyAgICBwbmdfdWludF8xNiBkZWxheV9u
dW0sIHBuZ191aW50XzE2IGRlbGF5X2RlbiwKKyAgICBwbmdfYnl0ZSBkaXNwb3NlX29wLCBwbmdf
Ynl0ZSBibGVuZF9vcCkKK3sKKyAgICBwbmdfZGVidWcxKDEsICJpbiAlcyBzdG9yYWdlIGZ1bmN0
aW9uXG4iLCAiZmNUTCIpOworCisgICAgaWYgKHBuZ19wdHIgPT0gTlVMTCB8fCBpbmZvX3B0ciA9
PSBOVUxMKQorICAgIHsKKyAgICAgICAgcG5nX3dhcm5pbmcocG5nX3B0ciwgCisgICAgICAgICAg
ICAgICAgICAgICJDYWxsIHRvIHBuZ19zZXRfZmNUTCgpIHdpdGggTlVMTCBwbmdfcHRyIG9yIGlu
Zm9fcHRyICIKKyAgICAgICAgICAgICAgICAgICAgImlnbm9yZWQiKTsKKyAgICAgICAgcmV0dXJu
ICgwKTsKKyAgICB9CisgICAgCisgICAgcG5nX2Vuc3VyZV9mY1RMX2lzX3ZhbGlkKHBuZ19wdHIs
IHdpZHRoLCBoZWlnaHQsIHhfb2Zmc2V0LCB5X29mZnNldCwgCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGRlbGF5X251bSwgZGVsYXlfZGVuLCBkaXNwb3NlX29wLCBibGVuZF9vcCk7Cisg
ICAgCisgICAgaW5mb19wdHItPm5leHRfZnJhbWVfd2lkdGggPSB3aWR0aDsKKyAgICBpbmZvX3B0
ci0+bmV4dF9mcmFtZV9oZWlnaHQgPSBoZWlnaHQ7CisgICAgaW5mb19wdHItPm5leHRfZnJhbWVf
eF9vZmZzZXQgPSB4X29mZnNldDsKKyAgICBpbmZvX3B0ci0+bmV4dF9mcmFtZV95X29mZnNldCA9
IHlfb2Zmc2V0OworICAgIGluZm9fcHRyLT5uZXh0X2ZyYW1lX2RlbGF5X251bSA9IGRlbGF5X251
bTsKKyAgICBpbmZvX3B0ci0+bmV4dF9mcmFtZV9kZWxheV9kZW4gPSBkZWxheV9kZW47CisgICAg
aW5mb19wdHItPm5leHRfZnJhbWVfZGlzcG9zZV9vcCA9IGRpc3Bvc2Vfb3A7CisgICAgaW5mb19w
dHItPm5leHRfZnJhbWVfYmxlbmRfb3AgPSBibGVuZF9vcDsKKyAgICAKKyAgICBpbmZvX3B0ci0+
dmFsaWQgfD0gUE5HX0lORk9fZmNUTDsKKyAgICAKKyAgICByZXR1cm4gKDEpOworfQorCit2b2lk
IC8qIFBSSVZBVEUgKi8KK3BuZ19lbnN1cmVfZmNUTF9pc192YWxpZChwbmdfc3RydWN0cCBwbmdf
cHRyLCAKKyAgICBwbmdfdWludF8zMiB3aWR0aCwgcG5nX3VpbnRfMzIgaGVpZ2h0LAorICAgIHBu
Z191aW50XzMyIHhfb2Zmc2V0LCBwbmdfdWludF8zMiB5X29mZnNldCwKKyAgICBwbmdfdWludF8x
NiBkZWxheV9udW0sIHBuZ191aW50XzE2IGRlbGF5X2RlbiwKKyAgICBwbmdfYnl0ZSBkaXNwb3Nl
X29wLCBwbmdfYnl0ZSBibGVuZF9vcCkKK3sKKyAgICBpZiAod2lkdGggKyB4X29mZnNldCA+IHBu
Z19wdHItPmZpcnN0X2ZyYW1lX3dpZHRoIHx8IAorICAgICAgICBoZWlnaHQgKyB5X29mZnNldCA+
IHBuZ19wdHItPmZpcnN0X2ZyYW1lX2hlaWdodCkKKyAgICAgICAgcG5nX2Vycm9yKHBuZ19wdHIs
ICJkaW1lbnNpb25zIG9mIGEgZnJhbWUgYXJlIGdyZWF0ZXIgdGhhbiIKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJ0aGUgb25lcyBpbiBJSERSIik7CisgICAgaWYgKHdpZHRoID4gUE5HX1VJ
TlRfMzFfTUFYKQorICAgICAgICBwbmdfZXJyb3IocG5nX3B0ciwgImludmFsaWQgd2lkdGggaW4g
ZmNUTCAoPiAyXjMxLTEpIik7CisgICAgaWYgKGhlaWdodCA+IFBOR19VSU5UXzMxX01BWCkKKyAg
ICAgICAgcG5nX2Vycm9yKHBuZ19wdHIsICJpbnZhbGlkIGhlaWdodCBpbiBmY1RMICg+IDJeMzEt
MSkiKTsKKyAgICBpZiAoeF9vZmZzZXQgPiBQTkdfVUlOVF8zMV9NQVgpCisgICAgICAgIHBuZ19l
cnJvcihwbmdfcHRyLCAiaW52YWxpZCB4X29mZnNldCBpbiBmY1RMICg+IDJeMzEtMSkiKTsKKyAg
ICBpZiAoeV9vZmZzZXQgPiBQTkdfVUlOVF8zMV9NQVgpCisgICAgICAgIHBuZ19lcnJvcihwbmdf
cHRyLCAiaW52YWxpZCB5X29mZnNldCBpbiBmY1RMICg+IDJeMzEtMSkiKTsKKworICAgIGlmIChk
aXNwb3NlX29wICE9IFBOR19ESVNQT1NFX09QX05PTkUgJiYKKwlkaXNwb3NlX29wICE9IFBOR19E
SVNQT1NFX09QX0JBQ0tHUk9VTkQgJiYKKwlkaXNwb3NlX29wICE9IFBOR19ESVNQT1NFX09QX1BS
RVZJT1VTKQorICAgICAgICBwbmdfZXJyb3IocG5nX3B0ciwgImludmFsaWQgZGlzcG9zZV9vcCBp
biBmY1RMIik7CisKKyAgICBpZiAoYmxlbmRfb3AgIT0gUE5HX0JMRU5EX09QX1NPVVJDRSAmJgor
CWJsZW5kX29wICE9IFBOR19CTEVORF9PUF9PVkVSKQorICAgICAgICBwbmdfZXJyb3IocG5nX3B0
ciwgImludmFsaWQgYmxlbmRfb3AgaW4gZmNUTCIpOworCisgICAgaWYgKGJsZW5kX29wID09IFBO
R19CTEVORF9PUF9PVkVSKSB7CisgICAgICAgIGlmIChwbmdfcHRyLT5jb2xvcl90eXBlID09IFBO
R19DT0xPUl9UWVBFX0dSQVkpCisgICAgICAgICAgICBwbmdfZXJyb3IocG5nX3B0ciwgIlBOR19C
TEVORF9PUF9PVkVSIGlzIG5vdCB2YWxpZCBmb3IgIgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJjb2xvciB0eXBlICdncmV5c2NhbGUgd2l0aG91dCBhbHBoYSciKTsKKyAgICAgICAg
ZWxzZSBpZiAoKHBuZ19wdHItPmNvbG9yX3R5cGUgJiBQTkdfQ09MT1JfTUFTS19DT0xPUikgJiYK
KwkJICEocG5nX3B0ci0+Y29sb3JfdHlwZSAmIFBOR19DT0xPUl9NQVNLX0FMUEhBKSkKKyAgICAg
ICAgICAgIHBuZ19lcnJvcihwbmdfcHRyLCAiUE5HX0JMRU5EX09QX09WRVIgaXMgbm90IHZhbGlk
IGZvciAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbG9yIHR5cGUgJ3RydWVj
b2xvciB3aXRob3V0IGFscGhhJyIpOworICAgIH0KK30KKworcG5nX3VpbnRfMzIgUE5HQVBJCitw
bmdfc2V0X2ZpcnN0X2ZyYW1lX2lzX2hpZGRlbihwbmdfc3RydWN0cCBwbmdfcHRyLCBwbmdfaW5m
b3AgaW5mb19wdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbmdfYnl0ZSBpc19o
aWRkZW4pCit7CisgICAgcG5nX2RlYnVnKDEsICJpbiBwbmdfZmlyc3RfZnJhbWVfaXNfaGlkZGVu
KClcbiIpOworICAgIAorICAgIGlmIChwbmdfcHRyID09IE5VTEwpCisgICAgICAgIHJldHVybiAw
OworICAgIAorICAgIGlmKGlzX2hpZGRlbikKKyAgICAgICAgcG5nX3B0ci0+YXBuZ19mbGFncyB8
PSBQTkdfRklSU1RfRlJBTUVfSElEREVOOworICAgIGVsc2UKKyAgICAgICAgcG5nX3B0ci0+YXBu
Z19mbGFncyAmPSB+UE5HX0ZJUlNUX0ZSQU1FX0hJRERFTjsKKyAgICAKKyAgICByZXR1cm4gMTsK
K30KKyNlbmRpZiAvKiBQTkdfQVBOR19TVVBQT1JURUQgKi8KKwogI2lmIGRlZmluZWQoUE5HX1VO
S05PV05fQ0hVTktTX1NVUFBPUlRFRCkKIHZvaWQgUE5HQVBJCiBwbmdfc2V0X3Vua25vd25fY2h1
bmtzKHBuZ19zdHJ1Y3RwIHBuZ19wdHIsCmRpZmYgLXJ1TiBsaWJwbmctMS4yLjMxL3BuZ3J1dGls
LmMub3JpZyBsaWJwbmctMS4yLjMxL3BuZ3J1dGlsLmMKLS0tIGxpYnBuZy0xLjIuMzEvcG5ncnV0
aWwuYy5vcmlnCTIwMDgtMDgtMjMgMjE6NDY6NTUuMDAwMDAwMDAwICswMjAwCisrKyBsaWJwbmct
MS4yLjMxL3BuZ3J1dGlsLmMJMjAwOC0wOC0yMyAyMTo0ODoxMy4wMDAwMDAwMDAgKzAyMDAKQEAg
LTQxNCw2ICs0MTQsMTEgQEAKICAgIGZpbHRlcl90eXBlID0gYnVmWzExXTsKICAgIGludGVybGFj
ZV90eXBlID0gYnVmWzEyXTsKIAorI2lmIGRlZmluZWQoUE5HX1JFQURfQVBOR19TVVBQT1JURUQp
CisgICBwbmdfcHRyLT5maXJzdF9mcmFtZV93aWR0aCA9IHdpZHRoOworICAgcG5nX3B0ci0+Zmly
c3RfZnJhbWVfaGVpZ2h0ID0gaGVpZ2h0OworI2VuZGlmCisKICAgIC8qIHNldCBpbnRlcm5hbCB2
YXJpYWJsZXMgKi8KICAgIHBuZ19wdHItPndpZHRoID0gd2lkdGg7CiAgICBwbmdfcHRyLT5oZWln
aHQgPSBoZWlnaHQ7CkBAIC0yMjIwLDYgKzIyMjUsMTY4IEBACiB9CiAjZW5kaWYKIAorI2lmIGRl
ZmluZWQoUE5HX1JFQURfQVBOR19TVVBQT1JURUQpCit2b2lkIC8qIFBSSVZBVEUgKi8KK3BuZ19o
YW5kbGVfYWNUTChwbmdfc3RydWN0cCBwbmdfcHRyLCBwbmdfaW5mb3AgaW5mb19wdHIsIHBuZ191
aW50XzMyIGxlbmd0aCkKK3sKKyAgICBwbmdfYnl0ZSBkYXRhWzhdOworICAgIHBuZ191aW50XzMy
IG51bV9mcmFtZXM7CisgICAgcG5nX3VpbnRfMzIgbnVtX3BsYXlzOworICAgIHBuZ191aW50XzMy
IGRpZFNldDsKKyAgICAKKyAgICBwbmdfZGVidWcoMSwgImluIHBuZ19oYW5kbGVfYWNUTFxuIik7
CisKKyAgICBpZiAoIShwbmdfcHRyLT5tb2RlICYgUE5HX0hBVkVfSUhEUikpCisgICAgeworICAg
ICAgICBwbmdfZXJyb3IocG5nX3B0ciwgIk1pc3NpbmcgSUhEUiBiZWZvcmUgYWNUTCIpOworICAg
IH0KKyAgICBlbHNlIGlmIChwbmdfcHRyLT5tb2RlICYgUE5HX0hBVkVfSURBVCkKKyAgICB7Cisg
ICAgICAgIHBuZ193YXJuaW5nKHBuZ19wdHIsICJJbnZhbGlkIGFjVEwgYWZ0ZXIgSURBVCBza2lw
cGVkIik7CisgICAgICAgIHBuZ19jcmNfZmluaXNoKHBuZ19wdHIsIGxlbmd0aCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisgICAgZWxzZSBpZiAocG5nX3B0ci0+bW9kZSAmIFBOR19IQVZFX2Fj
VEwpCisgICAgeworICAgICAgICBwbmdfd2FybmluZyhwbmdfcHRyLCAiRHVwbGljYXRlIGFjVEwg
c2tpcHBlZCIpOworICAgICAgICBwbmdfY3JjX2ZpbmlzaChwbmdfcHRyLCBsZW5ndGgpOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIGVsc2UgaWYgKGxlbmd0aCAhPSA4KQorICAgIHsKKyAg
ICAgICAgcG5nX3dhcm5pbmcocG5nX3B0ciwgImFjVEwgd2l0aCBpbnZhbGlkIGxlbmd0aCBza2lw
cGVkIik7CisgICAgICAgIHBuZ19jcmNfZmluaXNoKHBuZ19wdHIsIGxlbmd0aCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisgICAgCisgICAgcG5nX2NyY19yZWFkKHBuZ19wdHIsIGRhdGEsIDgp
OworICAgIHBuZ19jcmNfZmluaXNoKHBuZ19wdHIsIDApOworICAgIAorICAgIG51bV9mcmFtZXMg
PSBwbmdfZ2V0X3VpbnRfMzEocG5nX3B0ciwgZGF0YSk7CisgICAgbnVtX3BsYXlzID0gcG5nX2dl
dF91aW50XzMxKHBuZ19wdHIsIGRhdGEgKyA0KTsKKyAgICAKKyAgICAvKiB0aGUgc2V0IGZ1bmN0
aW9uIHdpbGwgZG8gZXJyb3IgY2hlY2tpbmcgb24gbnVtX2ZyYW1lcyAqLworICAgIGRpZFNldCA9
IHBuZ19zZXRfYWNUTChwbmdfcHRyLCBpbmZvX3B0ciwgbnVtX2ZyYW1lcywgbnVtX3BsYXlzKTsK
KyAgICBpZihkaWRTZXQpCisgICAgICAgIHBuZ19wdHItPm1vZGUgfD0gUE5HX0hBVkVfYWNUTDsK
K30KKwordm9pZCAvKiBQUklWQVRFICovCitwbmdfaGFuZGxlX2ZjVEwocG5nX3N0cnVjdHAgcG5n
X3B0ciwgcG5nX2luZm9wIGluZm9fcHRyLCBwbmdfdWludF8zMiBsZW5ndGgpCit7CisgICAgcG5n
X2J5dGUgZGF0YVsyMl07CisgICAgcG5nX3VpbnRfMzIgd2lkdGg7CisgICAgcG5nX3VpbnRfMzIg
aGVpZ2h0OworICAgIHBuZ191aW50XzMyIHhfb2Zmc2V0OworICAgIHBuZ191aW50XzMyIHlfb2Zm
c2V0OworICAgIHBuZ191aW50XzE2IGRlbGF5X251bTsKKyAgICBwbmdfdWludF8xNiBkZWxheV9k
ZW47CisgICAgcG5nX2J5dGUgZGlzcG9zZV9vcDsKKyAgICBwbmdfYnl0ZSBibGVuZF9vcDsKKyAg
ICAKKyAgICBwbmdfZGVidWcoMSwgImluIHBuZ19oYW5kbGVfZmNUTFxuIik7CisgICAgCisgICAg
aWYgKCEocG5nX3B0ci0+bW9kZSAmIFBOR19IQVZFX0lIRFIpKQorICAgIHsKKyAgICAgICAgcG5n
X2Vycm9yKHBuZ19wdHIsICJNaXNzaW5nIElIRFIgYmVmb3JlIGZjVEwiKTsKKyAgICB9CisgICAg
ZWxzZSBpZiAocG5nX3B0ci0+bW9kZSAmIFBOR19IQVZFX0lEQVQpCisgICAgeworICAgICAgICAv
KiBmb3IgYW55IGZyYW1lcyBvdGhlciB0aGVuIHRoZSBmaXJzdCB0aGlzIG1lc3NhZ2UgbWF5IGJl
IG1pc2xlYWRpbmcsCisgICAgICAgICogYnV0IGNvcnJlY3QuIFBOR19IQVZFX0lEQVQgaXMgdW5z
ZXQgYmVmb3JlIHRoZSBmcmFtZSBoZWFkIGlzIHJlYWQKKyAgICAgICAgKiBpIGNhbid0IHRoaW5r
IG9mIGEgYmV0dGVyIG1lc3NhZ2UgKi8KKyAgICAgICAgcG5nX3dhcm5pbmcocG5nX3B0ciwgIklu
dmFsaWQgZmNUTCBhZnRlciBJREFUIHNraXBwZWQiKTsKKyAgICAgICAgcG5nX2NyY19maW5pc2go
cG5nX3B0ciwgbGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBlbHNlIGlmIChw
bmdfcHRyLT5tb2RlICYgUE5HX0hBVkVfZmNUTCkKKyAgICB7CisgICAgICAgIHBuZ193YXJuaW5n
KHBuZ19wdHIsICJEdXBsaWNhdGUgZmNUTCB3aXRoaW4gb25lIGZyYW1lIHNraXBwZWQiKTsKKyAg
ICAgICAgcG5nX2NyY19maW5pc2gocG5nX3B0ciwgbGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKyAgICBlbHNlIGlmIChsZW5ndGggIT0gMjYpCisgICAgeworICAgICAgICBwbmdfd2Fy
bmluZyhwbmdfcHRyLCAiZmNUTCB3aXRoIGludmFsaWQgbGVuZ3RoIHNraXBwZWQiKTsKKyAgICAg
ICAgcG5nX2NyY19maW5pc2gocG5nX3B0ciwgbGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICAKKyAgICBwbmdfZW5zdXJlX3NlcXVlbmNlX251bWJlcihwbmdfcHRyLCBsZW5ndGgp
OworICAgIAorICAgIHBuZ19jcmNfcmVhZChwbmdfcHRyLCBkYXRhLCAyMik7CisgICAgcG5nX2Ny
Y19maW5pc2gocG5nX3B0ciwgMCk7CisgICAgCisgICAgd2lkdGggPSBwbmdfZ2V0X3VpbnRfMzEo
cG5nX3B0ciwgZGF0YSk7CisgICAgaGVpZ2h0ID0gcG5nX2dldF91aW50XzMxKHBuZ19wdHIsIGRh
dGEgKyA0KTsKKyAgICB4X29mZnNldCA9IHBuZ19nZXRfdWludF8zMShwbmdfcHRyLCBkYXRhICsg
OCk7CisgICAgeV9vZmZzZXQgPSBwbmdfZ2V0X3VpbnRfMzEocG5nX3B0ciwgZGF0YSArIDEyKTsK
KyAgICBkZWxheV9udW0gPSBwbmdfZ2V0X3VpbnRfMTYoZGF0YSArIDE2KTsKKyAgICBkZWxheV9k
ZW4gPSBwbmdfZ2V0X3VpbnRfMTYoZGF0YSArIDE4KTsKKyAgICBkaXNwb3NlX29wID0gZGF0YVsy
MF07CisgICAgYmxlbmRfb3AgPSBkYXRhWzIxXTsKKyAgICAKKyAgICBpZiAocG5nX3B0ci0+bnVt
X2ZyYW1lc19yZWFkID09IDAgJiYgKHhfb2Zmc2V0ICE9IDAgfHwgeV9vZmZzZXQgIT0gMCkpCisg
ICAgICAgIHBuZ19lcnJvcihwbmdfcHRyLCAiZmNUTCBmb3IgdGhlIGZpcnN0IGZyYW1lIG11c3Qg
aGF2ZSB6ZXJvIG9mZnNldCIpOworICAgIGlmIChwbmdfcHRyLT5udW1fZnJhbWVzX3JlYWQgPT0g
MCAmJiAKKyAgICAgICAgKHdpZHRoICE9IGluZm9fcHRyLT53aWR0aCB8fCBoZWlnaHQgIT0gaW5m
b19wdHItPmhlaWdodCkpCisgICAgICAgIHBuZ19lcnJvcihwbmdfcHRyLCAic2l6ZSBpbiBmaXJz
dCBmcmFtZSdzIGZjVEwgbXVzdCBtYXRjaCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAi
dGhlIHNpemUgaW4gSUhEUiIpOworICAgIAorICAgIC8qIHRoZSBzZXQgZnVuY3Rpb24gd2lsbCBk
byBtb3JlIGVycm9yIGNoZWNraW5nICovCisgICAgcG5nX3NldF9uZXh0X2ZyYW1lX2ZjVEwocG5n
X3B0ciwgaW5mb19wdHIsIHdpZHRoLCBoZWlnaHQsIAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHhfb2Zmc2V0LCB5X29mZnNldCwgZGVsYXlfbnVtLCBkZWxheV9kZW4sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZGlzcG9zZV9vcCwgYmxlbmRfb3ApOworICAgIAorICAgIHBuZ19y
ZWFkX3JlaW5pdChwbmdfcHRyLCBpbmZvX3B0cik7CisgICAgCisgICAgcG5nX3B0ci0+bW9kZSB8
PSBQTkdfSEFWRV9mY1RMOworfQorCit2b2lkIC8qIFBSSVZBVEUgKi8KK3BuZ19oYXZlX2luZm8o
cG5nX3N0cnVjdHAgcG5nX3B0ciwgcG5nX2luZm9wIGluZm9fcHRyKQoreworICAgIGlmKChpbmZv
X3B0ci0+dmFsaWQgJiBQTkdfSU5GT19hY1RMKSAmJiAhKGluZm9fcHRyLT52YWxpZCAmIFBOR19J
TkZPX2ZjVEwpKQorICAgIHsKKyAgICAgICAgcG5nX3B0ci0+YXBuZ19mbGFncyB8PSBQTkdfRklS
U1RfRlJBTUVfSElEREVOOworICAgICAgICBpbmZvX3B0ci0+bnVtX2ZyYW1lcysrOworICAgIH0K
K30KKwordm9pZCAvKiBQUklWQVRFICovCitwbmdfaGFuZGxlX2ZkQVQocG5nX3N0cnVjdHAgcG5n
X3B0ciwgcG5nX2luZm9wIGluZm9fcHRyLCBwbmdfdWludF8zMiBsZW5ndGgpCit7CisgICAgcG5n
X2Vuc3VyZV9zZXF1ZW5jZV9udW1iZXIocG5nX3B0ciwgbGVuZ3RoKTsKKyAgICAKKyAgICAvKiBU
aGlzIGZ1bmN0aW9uIGlzIG9ubHkgY2FsbGVkIGZyb20gcG5nX3JlYWRfZW5kKCksIHBuZ19yZWFk
X2luZm8oKSwgCisgICAgKiBhbmQgcG5nX3B1c2hfcmVhZF9jaHVuaygpIHdoaWNoIG1lYW5zIHRo
YXQ6CisgICAgKiAtIHRoZSB1c2VyIGRvZXNuJ3Qgd2FudCB0byByZWFkIHRoaXMgZnJhbWUKKyAg
ICAqIC0gb3IgdGhpcyBpcyBhbiBvdXQtb2YtcGxhY2UgZmRBVAorICAgICogaW4gZWl0aGVyIGNh
c2UgaXQgaXMgc2FmZSB0byBpZ25vcmUgdGhlIGNodW5rIHdpdGggYSB3YXJuaW5nICovCisgICAg
cG5nX3dhcm5pbmcocG5nX3B0ciwgImlnbm9yaW5nIGZkQVQgY2h1bmsiKTsKKyAgICBwbmdfY3Jj
X2ZpbmlzaChwbmdfcHRyLCBsZW5ndGggLSA0KTsKK30KKwordm9pZCAvKiBQUklWQVRFICovCitw
bmdfZW5zdXJlX3NlcXVlbmNlX251bWJlcihwbmdfc3RydWN0cCBwbmdfcHRyLCBwbmdfdWludF8z
MiBsZW5ndGgpCit7CisgICAgcG5nX2J5dGUgZGF0YVs0XTsKKyAgICBwbmdfdWludF8zMiBzZXF1
ZW5jZV9udW1iZXI7CisgICAgCisgICAgaWYgKGxlbmd0aCA8IDQpCisgICAgICAgIHBuZ19lcnJv
cihwbmdfcHRyLCAiaW52YWxpZCBmY1RMIG9yIGZkQVQgY2h1bmsgZm91bmQiKTsKKyAgICAKKyAg
ICBwbmdfY3JjX3JlYWQocG5nX3B0ciwgZGF0YSwgNCk7CisgICAgc2VxdWVuY2VfbnVtYmVyID0g
cG5nX2dldF91aW50XzMxKHBuZ19wdHIsIGRhdGEpOworICAgIAorICAgIGlmIChzZXF1ZW5jZV9u
dW1iZXIgIT0gcG5nX3B0ci0+bmV4dF9zZXFfbnVtKQorICAgICAgICBwbmdfZXJyb3IocG5nX3B0
ciwgImZjVEwgb3IgZmRBVCBjaHVuayB3aXRoIG91dC1vZi1vcmRlciBzZXF1ZW5jZSAiCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAibnVtYmVyIGZvdW5kIik7CisgICAgCisgICAgcG5nX3B0
ci0+bmV4dF9zZXFfbnVtKys7Cit9CisjZW5kaWYgLyogUE5HX1JFQURfQVBOR19TVVBQT1JURUQg
Ki8KKwogLyogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB3ZSBoYXZlbid0IGZvdW5kIGEg
aGFuZGxlciBmb3IgYQogICAgY2h1bmsuICBJZiB0aGVyZSBpc24ndCBhIHByb2JsZW0gd2l0aCB0
aGUgY2h1bmsgaXRzZWxmIChpZSBiYWQKICAgIGNodW5rIG5hbWUsIENSQywgb3IgYSBjcml0aWNh
bCBjaHVuayksIHRoZSBjaHVuayBpcyBzaWxlbnRseSBpZ25vcmVkCkBAIC0zMTk1LDggKzMzNjIs
MTAgQEAKICAgIGlmIChyb3dfYnl0ZXMgKyA2NCA+IHBuZ19wdHItPm9sZF9iaWdfcm93X2J1Zl9z
aXplKQogICAgewogICAgICBwbmdfZnJlZShwbmdfcHRyLCBwbmdfcHRyLT5iaWdfcm93X2J1Zik7
Ci0gICAgIHBuZ19wdHItPmJpZ19yb3dfYnVmID0gKHBuZ19ieXRlcClwbmdfbWFsbG9jKHBuZ19w
dHIsIHJvd19ieXRlcys2NCk7Ci0gICAgIHBuZ19wdHItPnJvd19idWYgPSBwbmdfcHRyLT5iaWdf
cm93X2J1ZiszMjsKKyAgICAgaWYgKHBuZ19wdHItPmJpZ19yb3dfYnVmID09IE5VTEwpCisgICAg
ICAgIHBuZ19wdHItPmJpZ19yb3dfYnVmID0gKHBuZ19ieXRlcClwbmdfbWFsbG9jKHBuZ19wdHIs
IHJvd19ieXRlcys2NCk7CisgICAgIGlmIChwbmdfcHRyLT5yb3dfYnVmID09IE5VTEwpCisgICAg
ICAgIHBuZ19wdHItPnJvd19idWYgPSBwbmdfcHRyLT5iaWdfcm93X2J1ZiszMjsKICAgICAgcG5n
X3B0ci0+b2xkX2JpZ19yb3dfYnVmX3NpemUgPSByb3dfYnl0ZXMrNjQ7CiAgICB9CiAKQEAgLTMy
MjYsNCArMzM5NSw4MiBAQAogCiAgICBwbmdfcHRyLT5mbGFncyB8PSBQTkdfRkxBR19ST1dfSU5J
VDsKIH0KKworI2lmIGRlZmluZWQoUE5HX1JFQURfQVBOR19TVVBQT1JURUQpCisvKiBUaGlzIGZ1
bmN0aW9uIGlzIHRvIGJlIGNhbGxlZCBhZnRlciB0aGUgbWFpbiBJREFUIHNldCBoYXMgYmVlbiBy
ZWFkIGFuZAorICogYmVmb3JlIGEgbmV3IElEQVQgaXMgcmVhZC4gSXQgcmVzZXRzIHNvbWUgcGFy
dHMgb2YgcG5nX3B0cgorICogdG8gbWFrZSB0aGVtIHVzYWJsZSBieSB0aGUgcmVhZCBmdW5jdGlv
bnMgYWdhaW4gKi8KK3ZvaWQgLyogUFJJVkFURSAqLworcG5nX3JlYWRfcmVzZXQocG5nX3N0cnVj
dHAgcG5nX3B0cikKK3sKKyAgICBwbmdfcHRyLT5tb2RlICY9IH5QTkdfSEFWRV9JREFUOworICAg
IHBuZ19wdHItPm1vZGUgJj0gflBOR19BRlRFUl9JREFUOworICAgIHBuZ19wdHItPnJvd19udW1i
ZXIgPSAwOworICAgIHBuZ19wdHItPnBhc3MgPSAwOworICAgIHBuZ19wdHItPmZsYWdzICY9IH5Q
TkdfRkxBR19ST1dfSU5JVDsKK30KKwordm9pZCAvKiBQUklWQVRFICovCitwbmdfcmVhZF9yZWlu
aXQocG5nX3N0cnVjdHAgcG5nX3B0ciwgcG5nX2luZm9wIGluZm9fcHRyKQoreworICAgIHBuZ19w
dHItPndpZHRoID0gaW5mb19wdHItPm5leHRfZnJhbWVfd2lkdGg7CisgICAgcG5nX3B0ci0+aGVp
Z2h0ID0gaW5mb19wdHItPm5leHRfZnJhbWVfaGVpZ2h0OworICAgIHBuZ19wdHItPnJvd2J5dGVz
ID0gUE5HX1JPV0JZVEVTKHBuZ19wdHItPnBpeGVsX2RlcHRoLHBuZ19wdHItPndpZHRoKTsKK30K
KworLyogc2FtZSBhcyBwbmdfcmVhZF9yZXNldCgpIGJ1dCBmb3IgdGhlIHByb2dyZXNzaXZlIHJl
YWRlciAqLwordm9pZCAvKiBQUklWQVRFICovCitwbmdfcHJvZ3Jlc3NpdmVfcmVhZF9yZXNldChw
bmdfc3RydWN0cCBwbmdfcHRyKQoreworI2lmZGVmIFBOR19VU0VfTE9DQUxfQVJSQVlTCisgICAg
Lyogc3RhcnQgb2YgaW50ZXJsYWNlIGJsb2NrICovCisgICAgY29uc3QgaW50IEZBUkRBVEEgcG5n
X3Bhc3Nfc3RhcnRbXSA9IHswLCA0LCAwLCAyLCAwLCAxLCAwfTsKKworICAgIC8qIG9mZnNldCB0
byBuZXh0IGludGVybGFjZSBibG9jayAqLworICAgIGNvbnN0IGludCBGQVJEQVRBIHBuZ19wYXNz
X2luY1tdID0gezgsIDgsIDQsIDQsIDIsIDIsIDF9OworCisgICAgLyogc3RhcnQgb2YgaW50ZXJs
YWNlIGJsb2NrIGluIHRoZSB5IGRpcmVjdGlvbiAqLworICAgIGNvbnN0IGludCBGQVJEQVRBIHBu
Z19wYXNzX3lzdGFydFtdID0gezAsIDAsIDQsIDAsIDIsIDAsIDF9OworCisgICAgLyogb2Zmc2V0
IHRvIG5leHQgaW50ZXJsYWNlIGJsb2NrIGluIHRoZSB5IGRpcmVjdGlvbiAqLworICAgIGNvbnN0
IGludCBGQVJEQVRBIHBuZ19wYXNzX3lpbmNbXSA9IHs4LCA4LCA4LCA0LCA0LCAyLCAyfTsKKyNl
bmRpZgorICAgIHBuZ191aW50XzMyIHJvd19ieXRlczsKKyAgICAKKyAgICBpZiAocG5nX3B0ci0+
aW50ZXJsYWNlZCkKKyAgICB7CisgICAgICAgIGlmICghKHBuZ19wdHItPnRyYW5zZm9ybWF0aW9u
cyAmIFBOR19JTlRFUkxBQ0UpKQorICAgICAgICAgICAgcG5nX3B0ci0+bnVtX3Jvd3MgPSAocG5n
X3B0ci0+aGVpZ2h0ICsgcG5nX3Bhc3NfeWluY1swXSAtIDEgLQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwbmdfcGFzc195c3RhcnRbMF0pIC8gcG5nX3Bhc3NfeWluY1swXTsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICBwbmdfcHRyLT5udW1fcm93cyA9IHBuZ19wdHItPmhlaWdo
dDsKKworICAgICAgICBwbmdfcHRyLT5pd2lkdGggPSAocG5nX3B0ci0+d2lkdGggKworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcG5nX3Bhc3NfaW5jW3BuZ19wdHItPnBhc3NdIC0gMSAtCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwbmdfcGFzc19zdGFydFtwbmdfcHRyLT5wYXNzXSkg
LworICAgICAgICAgICAgICAgICAgICAgICAgICAgcG5nX3Bhc3NfaW5jW3BuZ19wdHItPnBhc3Nd
OworCisgICAgICAgIHJvd19ieXRlcyA9IFBOR19ST1dCWVRFUyhwbmdfcHRyLT5waXhlbF9kZXB0
aCxwbmdfcHRyLT5pd2lkdGgpICsgMTsKKworICAgICAgICBwbmdfcHRyLT5pcm93Ynl0ZXMgPSAo
cG5nX3NpemVfdClyb3dfYnl0ZXM7CisgICAgICAgIGlmKChwbmdfdWludF8zMilwbmdfcHRyLT5p
cm93Ynl0ZXMgIT0gcm93X2J5dGVzKQorICAgICAgICAgICAgcG5nX2Vycm9yKHBuZ19wdHIsICJw
bmdfcHJvZ3Jlc3NpdmVfcmVhZF9yZXNldCgpOiBSb3dieXRlcyAiCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIm92ZXJmbG93Iik7CisgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAg
ICAgIHBuZ19wdHItPm51bV9yb3dzID0gcG5nX3B0ci0+aGVpZ2h0OworICAgICAgICBwbmdfcHRy
LT5pd2lkdGggPSBwbmdfcHRyLT53aWR0aDsKKyAgICAgICAgcG5nX3B0ci0+aXJvd2J5dGVzID0g
cG5nX3B0ci0+cm93Ynl0ZXMgKyAxOworICAgIH0KKyAgICAKKyAgICBwbmdfcHRyLT5mbGFncyAm
PSB+UE5HX0ZMQUdfWkxJQl9GSU5JU0hFRDsKKyAgICBpZiAoaW5mbGF0ZVJlc2V0KCYocG5nX3B0
ci0+enN0cmVhbSkpICE9IFpfT0spCisgICAgICAgIHBuZ19lcnJvcihwbmdfcHRyLCAiaW5mbGF0
ZVJlc2V0IGZhaWxlZCIpOworICAgIHBuZ19wdHItPnpzdHJlYW0uYXZhaWxfaW4gPSAwOworICAg
IHBuZ19wdHItPnpzdHJlYW0ubmV4dF9pbiA9IDA7CisgICAgcG5nX3B0ci0+enN0cmVhbS5uZXh0
X291dCA9IHBuZ19wdHItPnJvd19idWY7CisgICAgcG5nX3B0ci0+enN0cmVhbS5hdmFpbF9vdXQg
PSAodUludClwbmdfcHRyLT5pcm93Ynl0ZXM7Cit9CisjZW5kaWYgLyogUE5HX1JFQURfQVBOR19T
VVBQT1JURUQgKi8KICNlbmRpZiAvKiBQTkdfUkVBRF9TVVBQT1JURUQgKi8KZGlmZiAtcnVOIGxp
YnBuZy0xLjIuMzEvcG5nd3V0aWwuYy5vcmlnIGxpYnBuZy0xLjIuMzEvcG5nd3V0aWwuYwotLS0g
bGlicG5nLTEuMi4zMS9wbmd3dXRpbC5jLm9yaWcJMjAwOC0wOC0yMyAyMTo0NzowNi4wMDAwMDAw
MDAgKzAyMDAKKysrIGxpYnBuZy0xLjIuMzEvcG5nd3V0aWwuYwkyMDA4LTA4LTIzIDIxOjQ4OjEz
LjAwMDAwMDAwMCArMDIwMApAQCAtNTA2LDYgKzUwNiwxMSBAQAogICAgLyogd3JpdGUgdGhlIGNo
dW5rICovCiAgICBwbmdfd3JpdGVfY2h1bmsocG5nX3B0ciwgKHBuZ19ieXRlcClwbmdfSUhEUiwg
YnVmLCAocG5nX3NpemVfdCkxMyk7CiAKKyNpZiBkZWZpbmVkKFBOR19XUklURV9BUE5HX1NVUFBP
UlRFRCkKKyAgIHBuZ19wdHItPmZpcnN0X2ZyYW1lX3dpZHRoID0gd2lkdGg7CisgICBwbmdfcHRy
LT5maXJzdF9mcmFtZV9oZWlnaHQgPSBoZWlnaHQ7CisjZW5kaWYKKwogICAgLyogaW5pdGlhbGl6
ZSB6bGliIHdpdGggUE5HIGluZm8gKi8KICAgIHBuZ19wdHItPnpzdHJlYW0uemFsbG9jID0gcG5n
X3phbGxvYzsKICAgIHBuZ19wdHItPnpzdHJlYW0uemZyZWUgPSBwbmdfemZyZWU7CkBAIC02Mjgs
NiArNjMzLDkgQEAKIHsKICNpZmRlZiBQTkdfVVNFX0xPQ0FMX0FSUkFZUwogICAgUE5HX0lEQVQ7
CisjaWYgZGVmaW5lZChQTkdfV1JJVEVfQVBOR19TVVBQT1JURUQpCisgICBQTkdfZmRBVDsKKyNl
bmRpZgogI2VuZGlmCiAgICBwbmdfZGVidWcoMSwgImluIHBuZ193cml0ZV9JREFUXG4iKTsKIApA
QCAtNjcwLDcgKzY3OCwyOCBAQAogICAgICAgICAgICAgIkludmFsaWQgemxpYiBjb21wcmVzc2lv
biBtZXRob2Qgb3IgZmxhZ3MgaW4gSURBVCIpOwogICAgfQogCi0gICBwbmdfd3JpdGVfY2h1bmso
cG5nX3B0ciwgKHBuZ19ieXRlcClwbmdfSURBVCwgZGF0YSwgbGVuZ3RoKTsKKyNpZiBkZWZpbmVk
KFBOR19XUklURV9BUE5HX1NVUFBPUlRFRCkKKyAgIGlmKHBuZ19wdHItPm51bV9mcmFtZXNfd3Jp
dHRlbiA9PSAwKQorI2VuZGlmCisgICAgICBwbmdfd3JpdGVfY2h1bmsocG5nX3B0ciwgKHBuZ19i
eXRlcClwbmdfSURBVCwgZGF0YSwgbGVuZ3RoKTsKKyNpZiBkZWZpbmVkKFBOR19XUklURV9BUE5H
X1NVUFBPUlRFRCkKKyAgIGVsc2UKKyAgIHsKKyAgICAgIHBuZ19ieXRlIGJ1Zls0XTsKKyAgICAg
IAorICAgICAgcG5nX3dyaXRlX2NodW5rX3N0YXJ0KHBuZ19wdHIsIChwbmdfYnl0ZXApcG5nX2Zk
QVQsIDQgKyBsZW5ndGgpOworICAgICAgCisgICAgICBwbmdfc2F2ZV91aW50XzMyKGJ1ZiwgcG5n
X3B0ci0+bmV4dF9zZXFfbnVtKTsKKyAgICAgIHBuZ193cml0ZV9jaHVua19kYXRhKHBuZ19wdHIs
IGJ1ZiwgNCk7CisgICAgICAKKyAgICAgIHBuZ193cml0ZV9jaHVua19kYXRhKHBuZ19wdHIsIGRh
dGEsIGxlbmd0aCk7CisgICAgICAKKyAgICAgIHBuZ193cml0ZV9jaHVua19lbmQocG5nX3B0cik7
CisgICAgICAKKyAgICAgIHBuZ19wdHItPm5leHRfc2VxX251bSsrOworICAgfQorI2VuZGlmCisK
ICAgIHBuZ19wdHItPm1vZGUgfD0gUE5HX0hBVkVfSURBVDsKIH0KIApAQCAtMTc1NSw2ICsxNzg0
LDcwIEBACiB9CiAjZW5kaWYKIAorI2lmIGRlZmluZWQoUE5HX1dSSVRFX0FQTkdfU1VQUE9SVEVE
KQordm9pZCAvKiBQUklWQVRFICovCitwbmdfd3JpdGVfYWNUTChwbmdfc3RydWN0cCBwbmdfcHRy
LAorICAgcG5nX3VpbnRfMzIgbnVtX2ZyYW1lcywgcG5nX3VpbnRfMzIgbnVtX3BsYXlzKQorewor
I2lmZGVmIFBOR19VU0VfTE9DQUxfQVJSQVlTCisgICAgUE5HX2FjVEw7CisjZW5kaWYKKyAgICBw
bmdfYnl0ZSBkYXRhWzE2XTsKKyAgICAKKyAgICBwbmdfZGVidWcoMSwgImluIHBuZ193cml0ZV9h
Y1RMXG4iKTsKKyAgICAKKyAgICBwbmdfcHRyLT5udW1fZnJhbWVzX3RvX3dyaXRlID0gbnVtX2Zy
YW1lczsKKyAgICAKKyAgICBpZiAocG5nX3B0ci0+YXBuZ19mbGFncyAmIFBOR19GSVJTVF9GUkFN
RV9ISURERU4pCisgICAgICAgIG51bV9mcmFtZXMtLTsKKyAgICAKKyAgICBwbmdfc2F2ZV91aW50
XzMyKGRhdGEsIG51bV9mcmFtZXMpOworICAgIHBuZ19zYXZlX3VpbnRfMzIoZGF0YSArIDQsIG51
bV9wbGF5cyk7CisgICAgCisgICAgcG5nX3dyaXRlX2NodW5rKHBuZ19wdHIsIChwbmdfYnl0ZXAp
cG5nX2FjVEwsIGRhdGEsIChwbmdfc2l6ZV90KTgpOworfQorCit2b2lkIC8qIFBSSVZBVEUgKi8K
K3BuZ193cml0ZV9mY1RMKHBuZ19zdHJ1Y3RwIHBuZ19wdHIsIHBuZ191aW50XzMyIHdpZHRoLCBw
bmdfdWludF8zMiBoZWlnaHQsIAorICAgIHBuZ191aW50XzMyIHhfb2Zmc2V0LCBwbmdfdWludF8z
MiB5X29mZnNldCwKKyAgICBwbmdfdWludF8xNiBkZWxheV9udW0sIHBuZ191aW50XzE2IGRlbGF5
X2RlbiwgcG5nX2J5dGUgZGlzcG9zZV9vcCwgCisgICAgcG5nX2J5dGUgYmxlbmRfb3ApCit7Cisj
aWZkZWYgUE5HX1VTRV9MT0NBTF9BUlJBWVMKKyAgICBQTkdfZmNUTDsKKyNlbmRpZgorICAgIHBu
Z19ieXRlIGRhdGFbMjZdOworICAgIAorICAgIHBuZ19kZWJ1ZygxLCAiaW4gcG5nX3dyaXRlX2Zj
VExcbiIpOworICAgIAorICAgIGlmIChwbmdfcHRyLT5udW1fZnJhbWVzX3dyaXR0ZW4gPT0gMCAm
JiAoeF9vZmZzZXQgIT0gMCB8fCB5X29mZnNldCAhPSAwKSkKKyAgICAgICAgcG5nX2Vycm9yKHBu
Z19wdHIsICJ4IGFuZC9vciB5IG9mZnNldCBmb3IgdGhlIGZpcnN0IGZyYW1lIGFyZW4ndCAwXG4i
KTsKKyAgICBpZiAocG5nX3B0ci0+bnVtX2ZyYW1lc193cml0dGVuID09IDAgJiYgCisgICAgICAg
ICh3aWR0aCAhPSBwbmdfcHRyLT5maXJzdF9mcmFtZV93aWR0aCB8fCAKKyAgICAgICAgIGhlaWdo
dCAhPSBwbmdfcHRyLT5maXJzdF9mcmFtZV9oZWlnaHQpKQorICAgICAgICBwbmdfZXJyb3IocG5n
X3B0ciwgIndpZHRoIGFuZC9vciBoZWlnaHQgaW4gdGhlIGZpcnN0IGZyYW1lJ3MgZmNUTCAiCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiZG9uJ3QgbWF0Y2ggdGhlIG9uZXMgaW4gSUhEUlxu
Iik7CisgICAgCisgICAgLyogbW9yZSBlcnJvciBjaGVja2luZyAqLworICAgIHBuZ19lbnN1cmVf
ZmNUTF9pc192YWxpZChwbmdfcHRyLCB3aWR0aCwgaGVpZ2h0LCB4X29mZnNldCwgeV9vZmZzZXQs
IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxheV9udW0sIGRlbGF5X2RlbiwgZGlz
cG9zZV9vcCwgYmxlbmRfb3ApOworICAgIAorICAgIHBuZ19zYXZlX3VpbnRfMzIoZGF0YSwgcG5n
X3B0ci0+bmV4dF9zZXFfbnVtKTsKKyAgICBwbmdfc2F2ZV91aW50XzMyKGRhdGEgKyA0LCB3aWR0
aCk7CisgICAgcG5nX3NhdmVfdWludF8zMihkYXRhICsgOCwgaGVpZ2h0KTsKKyAgICBwbmdfc2F2
ZV91aW50XzMyKGRhdGEgKyAxMiwgeF9vZmZzZXQpOworICAgIHBuZ19zYXZlX3VpbnRfMzIoZGF0
YSArIDE2LCB5X29mZnNldCk7CisgICAgcG5nX3NhdmVfdWludF8xNihkYXRhICsgMjAsIGRlbGF5
X251bSk7CisgICAgcG5nX3NhdmVfdWludF8xNihkYXRhICsgMjIsIGRlbGF5X2Rlbik7CisgICAg
ZGF0YVsyNF0gPSBkaXNwb3NlX29wOworICAgIGRhdGFbMjVdID0gYmxlbmRfb3A7CisgICAgCisg
ICAgcG5nX3dyaXRlX2NodW5rKHBuZ19wdHIsIChwbmdfYnl0ZXApcG5nX2ZjVEwsIGRhdGEsIChw
bmdfc2l6ZV90KTI2KTsKKyAgICAKKyAgICBwbmdfcHRyLT5uZXh0X3NlcV9udW0rKzsKK30KKyNl
bmRpZiAvKiBQTkdfV1JJVEVfQVBOR19TVVBQT1JURUQgKi8KKwogLyogaW5pdGlhbGl6ZXMgdGhl
IHJvdyB3cml0aW5nIGNhcGFiaWxpdHkgb2YgbGlicG5nICovCiB2b2lkIC8qIFBSSVZBVEUgKi8K
IHBuZ193cml0ZV9zdGFydF9yb3cocG5nX3N0cnVjdHAgcG5nX3B0cikKQEAgLTI4MjQsNCArMjkx
NywzOSBAQAogICAgfQogI2VuZGlmCiB9CisKKyNpZiBkZWZpbmVkKFBOR19XUklURV9BUE5HX1NV
UFBPUlRFRCkKK3ZvaWQgLyogUFJJVkFURSAqLworcG5nX3dyaXRlX3Jlc2V0KHBuZ19zdHJ1Y3Rw
IHBuZ19wdHIpCit7CisgICAgcG5nX3B0ci0+cm93X251bWJlciA9IDA7CisgICAgcG5nX3B0ci0+
cGFzcyA9IDA7CisgICAgcG5nX3B0ci0+bW9kZSAmPSB+UE5HX0hBVkVfSURBVDsKK30KKwordm9p
ZCAvKiBQUklWQVRFICovCitwbmdfd3JpdGVfcmVpbml0KHBuZ19zdHJ1Y3RwIHBuZ19wdHIsIHBu
Z19pbmZvcCBpbmZvX3B0ciwgCisgICAgICAgICAgICAgICAgIHBuZ191aW50XzMyIHdpZHRoLCBw
bmdfdWludF8zMiBoZWlnaHQpCit7CisgICAgaWYgKHBuZ19wdHItPm51bV9mcmFtZXNfd3JpdHRl
biA9PSAwICYmIAorICAgICAgICAod2lkdGggIT0gcG5nX3B0ci0+Zmlyc3RfZnJhbWVfd2lkdGgg
fHwgCisgICAgICAgICBoZWlnaHQgIT0gcG5nX3B0ci0+Zmlyc3RfZnJhbWVfaGVpZ2h0KSkKKyAg
ICAgICAgcG5nX2Vycm9yKHBuZ19wdHIsICJ3aWR0aCBhbmQvb3IgaGVpZ2h0IGluIHRoZSBmaXJz
dCBmcmFtZSdzIGZjVEwgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgImRvbid0IG1hdGNo
IHRoZSBvbmVzIGluIElIRFJcbiIpOworICAgIGlmICh3aWR0aCA+IHBuZ19wdHItPmZpcnN0X2Zy
YW1lX3dpZHRoIHx8IAorICAgICAgICBoZWlnaHQgPiBwbmdfcHRyLT5maXJzdF9mcmFtZV9oZWln
aHQpCisgICAgICAgIHBuZ19lcnJvcihwbmdfcHRyLCAid2lkdGggYW5kL29yIGhlaWdodCBmb3Ig
YSBmcmFtZSBncmVhdGVyIHRoYW4iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAidGhlIG9u
ZXMgaW4gSUhEUiIpOworICAgIAorICAgIHBuZ19zZXRfSUhEUihwbmdfcHRyLCBpbmZvX3B0ciwg
d2lkdGgsIGhlaWdodCwgCisgICAgICAgICAgICAgICAgIGluZm9fcHRyLT5iaXRfZGVwdGgsIGlu
Zm9fcHRyLT5jb2xvcl90eXBlLCAKKyAgICAgICAgICAgICAgICAgaW5mb19wdHItPmludGVybGFj
ZV90eXBlLCBpbmZvX3B0ci0+Y29tcHJlc3Npb25fdHlwZSwKKyAgICAgICAgICAgICAgICAgaW5m
b19wdHItPmZpbHRlcl90eXBlKTsKKyAgIAorICAgIHBuZ19wdHItPndpZHRoID0gd2lkdGg7Cisg
ICAgcG5nX3B0ci0+aGVpZ2h0ID0gaGVpZ2h0OworICAgIHBuZ19wdHItPnJvd2J5dGVzID0gUE5H
X1JPV0JZVEVTKHBuZ19wdHItPnBpeGVsX2RlcHRoLCB3aWR0aCk7CisgICAgcG5nX3B0ci0+dXNy
X3dpZHRoID0gcG5nX3B0ci0+d2lkdGg7Cit9CisjZW5kaWYKICNlbmRpZiAvKiBQTkdfV1JJVEVf
U1VQUE9SVEVEICovCmRpZmYgLXJ1TiBsaWJwbmctMS4yLjMxL3BuZ3J0cmFuLmMub3JpZyBsaWJw
bmctMS4yLjMxL3BuZ3J0cmFuLmMKLS0tIGxpYnBuZy0xLjIuMzEvcG5ncnRyYW4uYy5vcmlnCTIw
MDgtMDgtMjMgMjE6NDc6MzAuMDAwMDAwMDAwICswMjAwCisrKyBsaWJwbmctMS4yLjMxL3BuZ3J0
cmFuLmMJMjAwOC0wOC0yMyAyMTo0ODoxMy4wMDAwMDAwMDAgKzAyMDAKQEAgLTEyODgsNyArMTI4
OCw3IEBACiAgICAgICAgKiBvciBwbmdfcmVhZF91cGRhdGVfaW5mbygpIGFmdGVyIHNldHRpbmcg
dHJhbnNmb3JtcyB0aGF0IGV4cGFuZAogICAgICAgICogcGl4ZWxzLiAgVGhpcyBjaGVjayBhZGRl
ZCB0byBsaWJwbmctMS4yLjE5ICovCiAjaWYgKFBOR19XQVJOX1VOSU5JVElBTElaRURfUk9XPT0x
KQotICAgICAgcG5nX2Vycm9yKHBuZ19wdHIsICJVbmluaXRpYWxpemVkIHJvdyIpOworICAgICAg
cG5nX3dhcm5pbmcocG5nX3B0ciwgIlVuaW5pdGlhbGl6ZWQgcm93Iik7CiAjZWxzZQogICAgICAg
cG5nX3dhcm5pbmcocG5nX3B0ciwgIlVuaW5pdGlhbGl6ZWQgcm93Iik7CiAjZW5kaWYK
</data>

          </attachment>
      

    </bug>

</bugzilla>