<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>95482</bug_id>
          
          <creation_ts>2012-08-30 11:10:56 -0700</creation_ts>
          <short_desc>JSC: Render unto #ifdef&apos;s that which belong to them</short_desc>
          <delta_ts>2012-08-30 15:21:30 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>benjamin</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>708847</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2012-08-30 11:10:56 -0700</bug_when>
    <thetext>Refining / disambiguating between #ifdefs and adding some.  For example, ENABLE(JIT) is conflated with ENABLE(LLINT) in some places.  Also, we need to add ENABLE(COMPUTED_GOTO_OPCODES) to indicate that we want interpreted opcodes to use COMPUTED GOTOs apart from ENABLE(LLINT) and ENABLE(COMPUTED_GOTO_CLASSIC_INTERPRETER).  Also cleaned up #ifdefs in certain places which were previously incorrect.

With current build configurations, this change does not make much difference.  But we&apos;ll need this later for the LLInt C loop.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708859</commentid>
    <comment_count>1</comment_count>
      <attachid>161522</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2012-08-30 11:26:54 -0700</bug_when>
    <thetext>Created attachment 161522
Fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708909</commentid>
    <comment_count>2</comment_count>
      <attachid>161522</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-08-30 12:42:58 -0700</bug_when>
    <thetext>Comment on attachment 161522
Fix.

Attachment 161522 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/13703008</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708915</commentid>
    <comment_count>3</comment_count>
      <attachid>161522</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-08-30 12:46:21 -0700</bug_when>
    <thetext>Comment on attachment 161522
Fix.

Attachment 161522 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/13681805</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708961</commentid>
    <comment_count>4</comment_count>
      <attachid>161522</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-08-30 13:24:14 -0700</bug_when>
    <thetext>Comment on attachment 161522
Fix.

Attachment 161522 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/13687805</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708988</commentid>
    <comment_count>5</comment_count>
      <attachid>161548</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2012-08-30 13:49:15 -0700</bug_when>
    <thetext>Created attachment 161548
Fix HAVE(COMPUTED_GOTO) &amp;&amp; !ENABLE(COMPUTED_GOTO_CLASSIC_INTERPRETER) case.

I missed the case where someone may want to build the classic interpreter without compute gotos even when HAVE(COMPUTED_GOTO) is defined.  Anyway, this is now fixed by not enabling ENABLE(COMPUTED_GOTO_OPCODES) when !ENABLE(COMPUTED_GOTO_CLASSIC_INTERPRETER).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>709098</commentid>
    <comment_count>6</comment_count>
      <attachid>161548</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-30 15:21:26 -0700</bug_when>
    <thetext>Comment on attachment 161548
Fix HAVE(COMPUTED_GOTO) &amp;&amp; !ENABLE(COMPUTED_GOTO_CLASSIC_INTERPRETER) case.

Clearing flags on attachment: 161548

Committed r127199: &lt;http://trac.webkit.org/changeset/127199&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>709099</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-30 15:21:30 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161522</attachid>
            <date>2012-08-30 11:26:54 -0700</date>
            <delta_ts>2012-08-30 13:49:15 -0700</delta_ts>
            <desc>Fix.</desc>
            <filename>bug-95482.patch</filename>
            <type>text/plain</type>
            <size>28117</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTI3MTU5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY0IEBA
CisyMDEyLTA4LTMwICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZW5kZXIgdW50byAjaWZkZWYncyB0aGF0IHdoaWNoIGJlbG9uZ3MgdG8gdGhlbS4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1NDgyLgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZmluaW5nIC8gZGlzYW1i
aWd1YXRpbmcgYmV0d2VlbiAjaWZkZWZzIGFuZCBhZGRpbmcgc29tZS4gRm9yCisgICAgICAgIGV4
YW1wbGUsIEVOQUJMRShKSVQpIGlzIGNvbmZsYXRlZCB3aXRoIEVOQUJMRShMTElOVCkgaW4gc29t
ZSBwbGFjZXMuCisgICAgICAgIEFsc28sIHdlIG5lZWQgdG8gYWRkIEVOQUJMRShDT01QVVRFRF9H
T1RPX09QQ09ERVMpIHRvIGluZGljYXRlIHRoYXQgd2UKKyAgICAgICAgd2FudCBpbnRlcnByZXRl
ZCBvcGNvZGVzIHRvIHVzZSBDT01QVVRFRCBHT1RPcyBhcGFydCBmcm9tIEVOQUJMRShMTElOVCkK
KyAgICAgICAgYW5kIEVOQUJMRShDT01QVVRFRF9HT1RPX0NMQVNTSUNfSU5URVJQUkVURVIpLiBB
bHNvIGNsZWFuZWQgdXAgI2lmZGVmcworICAgICAgICBpbiBjZXJ0YWluIHBsYWNlcyB3aGljaCB3
ZXJlIHByZXZpb3VzbHkgaW5jb3JyZWN0LgorCisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2Nr
LmNwcDoKKyAgICAgICAgKEpTQyk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6Ynl0ZWNvZGVP
ZmZzZXQpOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5oOgorICAgICAgICAoQ29kZUJs
b2NrKToKKyAgICAgICAgKiBieXRlY29kZS9PcGNvZGUuaDoKKyAgICAgICAgKEpTQzo6cGFkT3Bj
b2RlTmFtZSk6CisgICAgICAgICogY29uZmlnLmg6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlv
bnMuY3BwOgorICAgICAgICAqIGludGVycHJldGVyL0Fic3RyYWN0UEMuY3BwOgorICAgICAgICAo
SlNDOjpBYnN0cmFjdFBDOjpBYnN0cmFjdFBDKToKKyAgICAgICAgKiBpbnRlcnByZXRlci9DYWxs
RnJhbWUuaDoKKyAgICAgICAgKEV4ZWNTdGF0ZSk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvSW50
ZXJwcmV0ZXIuY3BwOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6fkludGVycHJldGVyKToK
KyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmluaXRpYWxpemUpOgorICAgICAgICAoSlNDOjpJ
bnRlcnByZXRlcjo6aXNPcGNvZGUpOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6dW53aW5k
Q2FsbEZyYW1lKToKKyAgICAgICAgKEpTQzo6Z2V0TGluZU51bWJlckZvckNhbGxGcmFtZSk6Cisg
ICAgICAgIChKU0M6OmdldENhbGxlckluZm8pOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6
ZXhlY3V0ZSk6CisgICAgICAgIChKU0M6OkludGVycHJldGVyOjpleGVjdXRlQ2FsbCk6CisgICAg
ICAgIChKU0M6OkludGVycHJldGVyOjpleGVjdXRlQ29uc3RydWN0KToKKyAgICAgICAgKEpTQzo6
SW50ZXJwcmV0ZXI6OnByaXZhdGVFeGVjdXRlKToKKyAgICAgICAgKiBpbnRlcnByZXRlci9JbnRl
cnByZXRlci5oOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6Z2V0T3Bjb2RlKToKKyAgICAg
ICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmdldE9wY29kZUlEKToKKyAgICAgICAgKEludGVycHJldGVy
KToKKyAgICAgICAgKiBqaXQvSG9zdENhbGxSZXR1cm5WYWx1ZS5oOgorICAgICAgICAqIGppdC9K
SVRDb2RlLmg6CisgICAgICAgIChKSVRDb2RlKToKKyAgICAgICAgKiBqaXQvSklURXhjZXB0aW9u
cy5jcHA6CisgICAgICAgICogaml0L0pJVEV4Y2VwdGlvbnMuaDoKKyAgICAgICAgKiBqaXQvSlNJ
bnRlcmZhY2VKSVQuaDoKKyAgICAgICAgKiBsbGludC9MTEludERhdGEuaDoKKyAgICAgICAgKEpT
Qzo6TExJbnQ6OmdldE9wY29kZSk6CisgICAgICAgICogbGxpbnQvTExJbnRFbnRyeXBvaW50cy5j
cHA6CisgICAgICAgIChKU0M6OkxMSW50OjpnZXRGdW5jdGlvbkVudHJ5cG9pbnQpOgorICAgICAg
ICAoSlNDOjpMTEludDo6Z2V0RXZhbEVudHJ5cG9pbnQpOgorICAgICAgICAoSlNDOjpMTEludDo6
Z2V0UHJvZ3JhbUVudHJ5cG9pbnQpOgorICAgICAgICAqIGxsaW50L0xMSW50T2Zmc2V0c0V4dHJh
Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkxMSW50T2Zmc2V0c0V4dHJhY3Rvcjo6ZHVtbXkpOgor
ICAgICAgICAqIGxsaW50L0xMSW50U2xvd1BhdGhzLmNwcDoKKyAgICAgICAgKExMSW50KToKKyAg
ICAgICAgKiBydW50aW1lL0pTR2xvYmFsRGF0YS5jcHA6CisgICAgICAgIChKU0MpOgorCiAyMDEy
LTA4LTMwICBZb25nIExpICA8eW9saUByaW0uY29tPgogCiAgICAgICAgIFtCbGFja0JlcnJ5XSBT
ZXQgdGltZXIgY2xpZW50IG9uIHBsYXRmb3JtIHRpbWVyIHVzZWQgaW4gSGVhcFRpbWVyCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvY29uZmlnLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2NvbmZpZy5oCShyZXZpc2lvbiAxMjcxNTgpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvY29uZmlnLmgJKHdvcmtpbmcgY29weSkKQEAgLTU3LDkgKzU3LDkgQEAKICNpZm5k
ZWYgX0NSVF9SQU5EX1MKICNkZWZpbmUgX0NSVF9SQU5EX1MKICNlbmRpZgotI2VuZGlmCisjZW5k
aWYgLy8gIUNPTVBJTEVSKE1TVkM3X09SX0xPV0VSKSAmJiAhT1MoV0lOQ0UpCiAKLSNlbmRpZgor
I2VuZGlmIC8vIE9TKFdJTkRPV1MpCiAKICNkZWZpbmUgV1RGX0NIQU5HRVMgMQogCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkocmV2aXNpb24g
MTI3MTU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI1NzgsNiArMjU3OCw3IEBAIHZvaWQgQ29kZUJsb2NrOjp1bmxp
bmtJbmNvbWluZ0NhbGxzKCkKICAgICB3aGlsZSAobV9pbmNvbWluZ0NhbGxzLmJlZ2luKCkgIT0g
bV9pbmNvbWluZ0NhbGxzLmVuZCgpKQogICAgICAgICBtX2luY29taW5nQ2FsbHMuYmVnaW4oKS0+
dW5saW5rKCptX2dsb2JhbERhdGEsIHJlcGF0Y2hCdWZmZXIpOwogfQorI2VuZGlmIC8vIEVOQUJM
RShKSVQpCiAKICNpZiBFTkFCTEUoTExJTlQpCiBJbnN0cnVjdGlvbiogQ29kZUJsb2NrOjphZGp1
c3RQQ0lmQXRDYWxsU2l0ZShJbnN0cnVjdGlvbiogcG90ZW50aWFsUmV0dXJuUEMpCkBAIC0yNjMx
LDEwICsyNjMyLDEyIEBAIEluc3RydWN0aW9uKiBDb2RlQmxvY2s6OmFkanVzdFBDSWZBdENhbGwK
ICAgICAvLyBOb3QgYSBjYWxsIHNpdGUuIE5vIG5lZWQgdG8gYWRqdXN0IFBDLiBKdXN0IHJldHVy
biB0aGUgb3JpZ2luYWwuCiAgICAgcmV0dXJuIHBvdGVudGlhbFJldHVyblBDOwogfQotI2VuZGlm
CisjZW5kaWYgLy8gRU5BQkxFKExMSU5UKQogCiB1bnNpZ25lZCBDb2RlQmxvY2s6OmJ5dGVjb2Rl
T2Zmc2V0KEV4ZWNTdGF0ZSogZXhlYywgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzKQog
eworICAgIFVOVVNFRF9QQVJBTShleGVjKTsKKyAgICBVTlVTRURfUEFSQU0ocmV0dXJuQWRkcmVz
cyk7CiAjaWYgRU5BQkxFKExMSU5UKQogICAgIGlmIChyZXR1cm5BZGRyZXNzLnZhbHVlKCkgPj0g
TExJbnQ6OmdldENvZGVQdHIobGxpbnRfYmVnaW4pCiAgICAgICAgICYmIHJldHVybkFkZHJlc3Mu
dmFsdWUoKSA8PSBMTEludDo6Z2V0Q29kZVB0cihsbGludF9lbmQpKSB7CkBAIC0yNjQ1LDIwICsy
NjQ4LDIzIEBAIHVuc2lnbmVkIENvZGVCbG9jazo6Ynl0ZWNvZGVPZmZzZXQoRXhlY1MKICAgICAg
ICAgQVNTRVJUKGluc3RydWN0aW9uKTsKIAogICAgICAgICBpbnN0cnVjdGlvbiA9IGFkanVzdFBD
SWZBdENhbGxTaXRlKGluc3RydWN0aW9uKTsKLSAgICAgICAgCiAgICAgICAgIHJldHVybiBieXRl
Y29kZU9mZnNldChpbnN0cnVjdGlvbik7CiAgICAgfQotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0o
ZXhlYyk7Ci0jZW5kaWYKKyNlbmRpZiAvLyAhRU5BQkxFKExMSU5UKQorCisjaWYgRU5BQkxFKEpJ
VCkKICAgICBpZiAoIW1fcmFyZURhdGEpCiAgICAgICAgIHJldHVybiAxOwogICAgIFZlY3RvcjxD
YWxsUmV0dXJuT2Zmc2V0VG9CeXRlY29kZU9mZnNldD4mIGNhbGxJbmRpY2VzID0gbV9yYXJlRGF0
YS0+bV9jYWxsUmV0dXJuSW5kZXhWZWN0b3I7CiAgICAgaWYgKCFjYWxsSW5kaWNlcy5zaXplKCkp
CiAgICAgICAgIHJldHVybiAxOwogICAgIHJldHVybiBiaW5hcnlTZWFyY2g8Q2FsbFJldHVybk9m
ZnNldFRvQnl0ZWNvZGVPZmZzZXQsIHVuc2lnbmVkLCBnZXRDYWxsUmV0dXJuT2Zmc2V0PihjYWxs
SW5kaWNlcy5iZWdpbigpLCBjYWxsSW5kaWNlcy5zaXplKCksIGdldEpJVENvZGUoKS5vZmZzZXRP
ZihyZXR1cm5BZGRyZXNzLnZhbHVlKCkpKS0+Ynl0ZWNvZGVPZmZzZXQ7Ci19CisjZW5kaWYgLy8g
RU5BQkxFKEpJVCkKKworI2lmICFFTkFCTEUoTExJTlQpICYmICFFTkFCTEUoSklUKQorICAgIHJl
dHVybiAxOwogI2VuZGlmCit9CiAKIHZvaWQgQ29kZUJsb2NrOjpjbGVhckV2YWxDYWNoZSgpCiB7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCShyZXZp
c2lvbiAxMjcxNTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2Nr
LmgJKHdvcmtpbmcgY29weSkKQEAgLTIyOSwxMiArMjI5LDE0IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gKihiaW5hcnlTZWFyY2g8TWV0aG9kQ2FsbExp
bmtJbmZvLCB1bnNpZ25lZCwgZ2V0TWV0aG9kQ2FsbExpbmtJbmZvQnl0ZWNvZGVJbmRleD4obV9t
ZXRob2RDYWxsTGlua0luZm9zLmJlZ2luKCksIG1fbWV0aG9kQ2FsbExpbmtJbmZvcy5zaXplKCks
IGJ5dGVjb2RlSW5kZXgpKTsKICAgICAgICAgfQorI2VuZGlmIC8vIEVOQUJMRShKSVQpCiAKICNp
ZiBFTkFCTEUoTExJTlQpCiAgICAgICAgIEluc3RydWN0aW9uKiBhZGp1c3RQQ0lmQXRDYWxsU2l0
ZShJbnN0cnVjdGlvbiopOwogI2VuZGlmCiAgICAgICAgIHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0
KEV4ZWNTdGF0ZSosIFJldHVybkFkZHJlc3NQdHIpOwogCisjaWYgRU5BQkxFKEpJVCkKICAgICAg
ICAgdW5zaWduZWQgYnl0ZWNvZGVPZmZzZXRGb3JDYWxsQXRJbmRleCh1bnNpZ25lZCBpbmRleCkK
ICAgICAgICAgewogICAgICAgICAgICAgaWYgKCFtX3JhcmVEYXRhKQpAQCAtMjU0LDYgKzI1Niw4
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB7CiAgICAgICAgICAgICBtX2luY29taW5nQ2Fs
bHMucHVzaChpbmNvbWluZyk7CiAgICAgICAgIH0KKyNlbmRpZiAvLyBFTkFCTEUoSklUKQorCiAj
aWYgRU5BQkxFKExMSU5UKQogICAgICAgICB2b2lkIGxpbmtJbmNvbWluZ0NhbGwoTExJbnRDYWxs
TGlua0luZm8qIGluY29taW5nKQogICAgICAgICB7CkBAIC0yNjIsNyArMjY2LDYgQEAgbmFtZXNw
YWNlIEpTQyB7CiAjZW5kaWYgLy8gRU5BQkxFKExMSU5UKQogICAgICAgICAKICAgICAgICAgdm9p
ZCB1bmxpbmtJbmNvbWluZ0NhbGxzKCk7Ci0jZW5kaWYgLy8gRU5BQkxFKEpJVCkKIAogI2lmIEVO
QUJMRShERkdfSklUKSB8fCBFTkFCTEUoTExJTlQpCiAgICAgICAgIHZvaWQgc2V0SklUQ29kZU1h
cChQYXNzT3duUHRyPENvbXBhY3RKSVRDb2RlTWFwPiBqaXRDb2RlTWFwKQpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wY29kZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PcGNvZGUuaAkocmV2aXNpb24gMTI3MTU4KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wY29kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
MjUsNyArMjI1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEZPUl9FQUNIX09QQ09ERV9J
RChWRVJJRllfT1BDT0RFX0lEKTsKICAgICAjdW5kZWYgVkVSSUZZX09QQ09ERV9JRAogCi0jaWYg
RU5BQkxFKENPTVBVVEVEX0dPVE9fQ0xBU1NJQ19JTlRFUlBSRVRFUikgfHwgRU5BQkxFKExMSU5U
KQorI2lmIEVOQUJMRShDT01QVVRFRF9HT1RPX09QQ09ERVMpCiAgICAgdHlwZWRlZiB2b2lkKiBP
cGNvZGU7CiAjZWxzZQogICAgIHR5cGVkZWYgT3Bjb2RlSUQgT3Bjb2RlOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCShyZXZpc2lvbiAxMjcxNTgp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00NCw2ICs0NCw4IEBACiAjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1
ZGUgPHd0Zi9JbmxpbmVBU00uaD4KIAorI2lmIEVOQUJMRShKSVQpCisKICNpZiBFTkFCTEUoREZH
X0pJVCkKIAogI2lmIENQVShYODZfNjQpCkBAIC0xMzg4LDcgKzEzOTAsNyBAQCBleHRlcm4gIkMi
IHZvaWQgREZHX09QRVJBVElPTiB0cmlnZ2VyUmVvCiB9IC8vIGV4dGVybiAiQyIKIH0gfSAvLyBu
YW1lc3BhY2UgSlNDOjpERkcKIAotI2VuZGlmCisjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCiAK
ICNpZiBDT01QSUxFUihHQ0MpCiAKQEAgLTE0NTAsMyArMTQ1Miw0IEBAIGV4dGVybiAiQyIgRW5j
b2RlZEpTVmFsdWUgSE9TVF9DQUxMX1JFVFUKIAogI2VuZGlmIC8vIENPTVBJTEVSKEdDQykKIAor
I2VuZGlmIC8vIEVOQUJMRShKSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJw
cmV0ZXIvQWJzdHJhY3RQQy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ludGVycHJldGVyL0Fic3RyYWN0UEMuY3BwCShyZXZpc2lvbiAxMjcxNTgpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQWJzdHJhY3RQQy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM2LDYgKzM2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiBBYnN0cmFjdFBDOjpBYnN0cmFjdFBD
KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgRXhlY1N0YXRlKiBleGVjKQogewogICAgIFVOVVNF
RF9QQVJBTShnbG9iYWxEYXRhKTsKKyAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgCiAjaWYg
RU5BQkxFKEpJVCkKICAgICBpZiAoZ2xvYmFsRGF0YS5jYW5Vc2VKSVQoKSkgewpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuaAkocmV2aXNpb24g
MTI3MTU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xMDMsNyArMTAzLDcgQEAgbmFtZXNwYWNlIEpTQyAgewogICAg
ICAgICBDYWxsRnJhbWUmIG9wZXJhdG9yPShjb25zdCBSZWdpc3RlciYgcikgeyAqc3RhdGljX2Nh
c3Q8UmVnaXN0ZXIqPih0aGlzKSA9IHI7IHJldHVybiAqdGhpczsgfQogCiAgICAgICAgIENhbGxG
cmFtZSogY2FsbGVyRnJhbWUoKSBjb25zdCB7IHJldHVybiB0aGlzW1JlZ2lzdGVyRmlsZTo6Q2Fs
bGVyRnJhbWVdLmNhbGxGcmFtZSgpOyB9Ci0jaWYgRU5BQkxFKEpJVCkKKyNpZiBFTkFCTEUoSklU
KSB8fCBFTkFCTEUoTExJTlQpCiAgICAgICAgIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuUEMoKSBj
b25zdCB7IHJldHVybiBSZXR1cm5BZGRyZXNzUHRyKHRoaXNbUmVnaXN0ZXJGaWxlOjpSZXR1cm5Q
Q10udlBDKCkpOyB9CiAgICAgICAgIGJvb2wgaGFzUmV0dXJuUEMoKSBjb25zdCB7IHJldHVybiAh
IXRoaXNbUmVnaXN0ZXJGaWxlOjpSZXR1cm5QQ10udlBDKCk7IH0KICAgICAgICAgdm9pZCBjbGVh
clJldHVyblBDKCkgeyByZWdpc3RlcnMoKVtSZWdpc3RlckZpbGU6OlJldHVyblBDXSA9IHN0YXRp
Y19jYXN0PEluc3RydWN0aW9uKj4oMCk7IH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAkocmV2aXNpb24gMTI3MTU4KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjc4LDcgKzI3OCw3IEBAIEludGVycHJldGVyOjpJbnRlcnByZXRlcigpCiAK
IEludGVycHJldGVyOjp+SW50ZXJwcmV0ZXIoKQogewotI2lmIEVOQUJMRShMTElOVCkKKyNpZiBF
TkFCTEUoTExJTlQpICYmIEVOQUJMRShDT01QVVRFRF9HT1RPX09QQ09ERVMpCiAgICAgaWYgKG1f
Y2xhc3NpY0VuYWJsZWQpCiAgICAgICAgIGRlbGV0ZVtdIG1fb3Bjb2RlVGFibGU7CiAjZW5kaWYK
QEAgLTI5MywxNSArMjkzLDE2IEBAIHZvaWQgSW50ZXJwcmV0ZXI6OmluaXRpYWxpemUoYm9vbCBj
YW5Vc2UKICNlcnJvciAiQnVpbGRpbmcgYm90aCBMTEludCBhbmQgdGhlIENsYXNzaWMgSW50ZXJw
cmV0ZXIgaXMgbm90IHN1cHBvcnRlZCBiZWNhdXNlIGl0IGRvZXNuJ3QgbWFrZSBzZW5zZS4iCiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShDT01QVVRFRF9HT1RPX09QQ09ERVMpCiAjaWYgRU5BQkxFKExM
SU5UKQogICAgIG1fb3Bjb2RlVGFibGUgPSBMTEludDo6b3Bjb2RlTWFwKCk7CiAgICAgZm9yIChp
bnQgaSA9IDA7IGkgPCBudW1PcGNvZGVJRHM7ICsraSkKICAgICAgICAgbV9vcGNvZGVJRFRhYmxl
LmFkZChtX29wY29kZVRhYmxlW2ldLCBzdGF0aWNfY2FzdDxPcGNvZGVJRD4oaSkpOwogICAgIG1f
Y2xhc3NpY0VuYWJsZWQgPSBmYWxzZTsKKwogI2VsaWYgRU5BQkxFKENPTVBVVEVEX0dPVE9fQ0xB
U1NJQ19JTlRFUlBSRVRFUikKICAgICBpZiAoY2FuVXNlSklUKSB7CiAgICAgICAgIC8vIElmIHRo
ZSBKSVQgaXMgcHJlc2VudCwgZG9uJ3QgdXNlIGp1bXAgZGVzdGluYXRpb25zIGZvciBvcGNvZGVz
LgotICAgICAgICAKICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1PcGNvZGVJRHM7ICsr
aSkgewogICAgICAgICAgICAgT3Bjb2RlIG9wY29kZSA9IGJpdHdpc2VfY2FzdDx2b2lkKj4oc3Rh
dGljX2Nhc3Q8dWludHB0cl90PihpKSk7CiAgICAgICAgICAgICBtX29wY29kZVRhYmxlW2ldID0g
b3Bjb2RlOwpAQCAtMzE1LDEzICszMTYsMTYgQEAgdm9pZCBJbnRlcnByZXRlcjo6aW5pdGlhbGl6
ZShib29sIGNhblVzZQogICAgICAgICAKICAgICAgICAgbV9jbGFzc2ljRW5hYmxlZCA9IHRydWU7
CiAgICAgfQotI2Vsc2UKKyNlbmRpZiAvLyBFTkFCTEUoQ09NUFVURURfR09UT19DTEFTU0lDX0lO
VEVSUFJFVEVSKQorCisjZWxzZSAvLyAhRU5BQkxFKENPTVBVVEVEX0dPVE9fT1BDT0RFUykKICNp
ZiBFTkFCTEUoQ0xBU1NJQ19JTlRFUlBSRVRFUikKICAgICBtX2NsYXNzaWNFbmFibGVkID0gdHJ1
ZTsKICNlbHNlCiAgICAgbV9jbGFzc2ljRW5hYmxlZCA9IGZhbHNlOwogI2VuZGlmCi0jZW5kaWYg
Ly8gRU5BQkxFKENPTVBVVEVEX0dPVE9fQ0xBU1NJQ19JTlRFUlBSRVRFUikKKyNlbmRpZiAvLyAh
RU5BQkxFKENPTVBVVEVEX0dPVE9fT1BDT0RFUykKKwogI2lmICFBU1NFUlRfRElTQUJMRUQKICAg
ICBtX2luaXRpYWxpemVkID0gdHJ1ZTsKICNlbmRpZgpAQCAtNDMyLDcgKzQzNiw3IEBAIHZvaWQg
SW50ZXJwcmV0ZXI6OmR1bXBSZWdpc3RlcnMoQ2FsbEZyYW0KIAogYm9vbCBJbnRlcnByZXRlcjo6
aXNPcGNvZGUoT3Bjb2RlIG9wY29kZSkKIHsKLSNpZiBFTkFCTEUoQ09NUFVURURfR09UT19DTEFT
U0lDX0lOVEVSUFJFVEVSKSB8fCBFTkFCTEUoTExJTlQpCisjaWYgRU5BQkxFKENPTVBVVEVEX0dP
VE9fT1BDT0RFUykKICNpZiAhRU5BQkxFKExMSU5UKQogICAgIGlmICghbV9jbGFzc2ljRW5hYmxl
ZCkKICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PE9wY29kZUlEPihiaXR3aXNlX2Nhc3Q8dWlu
dHB0cl90PihvcGNvZGUpKSA8PSBvcF9lbmQ7CkBAIC00OTYsNyArNTAwLDcgQEAgTkVWRVJfSU5M
SU5FIGJvb2wgSW50ZXJwcmV0ZXI6OnVud2luZENhbAogICAgICAgICBieXRlY29kZU9mZnNldCA9
IGNvZGVCbG9jay0+Ynl0ZWNvZGVPZmZzZXQoY2FsbGVyRnJhbWUsIGNhbGxGcmFtZS0+cmV0dXJu
UEMoKSk7CiAgICAgZWxzZQogICAgICAgICBieXRlY29kZU9mZnNldCA9IGNvZGVCbG9jay0+Ynl0
ZWNvZGVPZmZzZXQoY2FsbEZyYW1lLT5yZXR1cm5WUEMoKSkgLSAxOwotI2VsaWYgRU5BQkxFKEpJ
VCkKKyNlbGlmIEVOQUJMRShKSVQpIHx8IEVOQUJMRShMTElOVCkKICAgICBieXRlY29kZU9mZnNl
dCA9IGNvZGVCbG9jay0+Ynl0ZWNvZGVPZmZzZXQoY2FsbGVyRnJhbWUsIGNhbGxGcmFtZS0+cmV0
dXJuUEMoKSk7CiAjZWxzZQogICAgIGJ5dGVjb2RlT2Zmc2V0ID0gY29kZUJsb2NrLT5ieXRlY29k
ZU9mZnNldChjYWxsRnJhbWUtPnJldHVyblZQQygpKSAtIDE7CkBAIC01NjgsNyArNTcyLDcgQEAg
c3RhdGljIGludCBnZXRMaW5lTnVtYmVyRm9yQ2FsbEZyYW1lKEpTRwogICAgIGlmICghZ2xvYmFs
RGF0YS0+Y2FuVXNlSklUKCkpCiAgICAgICAgIHJldHVybiBjb2RlQmxvY2stPmxpbmVOdW1iZXJG
b3JCeXRlY29kZU9mZnNldChjYWxsRnJhbWUtPmJ5dGVjb2RlT2Zmc2V0Rm9yTm9uREZHQ29kZSgp
IC0gMSk7CiAjZW5kaWYKLSNpZiBFTkFCTEUoSklUKQorI2lmIEVOQUJMRShKSVQpIHx8IEVOQUJM
RShMTElOVCkKICNpZiBFTkFCTEUoREZHX0pJVCkKICAgICBpZiAoY29kZUJsb2NrLT5nZXRKSVRU
eXBlKCkgPT0gSklUQ29kZTo6REZHSklUKQogICAgICAgICByZXR1cm4gY29kZUJsb2NrLT5saW5l
TnVtYmVyRm9yQnl0ZWNvZGVPZmZzZXQoY29kZUJsb2NrLT5jb2RlT3JpZ2luKGNhbGxGcmFtZS0+
Y29kZU9yaWdpbkluZGV4Rm9yREZHKCkpLmJ5dGVjb2RlSW5kZXgpOwpAQCAtNTk0LDcgKzU5OCw3
IEBAIHN0YXRpYyBDYWxsRnJhbWUqIGdldENhbGxlckluZm8oSlNHbG9iYWwKICAgICAKICAgICBD
b2RlQmxvY2sqIGNhbGxlckNvZGVCbG9jayA9IGNhbGxlckZyYW1lLT5jb2RlQmxvY2soKTsKICAg
ICAKLSNpZiBFTkFCTEUoSklUKQorI2lmIEVOQUJMRShKSVQpIHx8IEVOQUJMRShMTElOVCkKICAg
ICBpZiAoIWNhbGxGcmFtZS0+aGFzUmV0dXJuUEMoKSkKICAgICAgICAgY2FsbGZyYW1lSXNIb3N0
ID0gdHJ1ZTsKICNlbmRpZgpAQCAtNjEzLDcgKzYxNyw3IEBAIHN0YXRpYyBDYWxsRnJhbWUqIGdl
dENhbGxlckluZm8oSlNHbG9iYWwKICAgICAgICAgICAgIHJldHVybiBjYWxsZXJGcmFtZTsKICAg
ICAgICAgfQogI2VuZGlmCi0jaWYgRU5BQkxFKEpJVCkKKyNpZiBFTkFCTEUoSklUKSB8fCBFTkFC
TEUoTExJTlQpCiAjaWYgRU5BQkxFKERGR19KSVQpCiAgICAgICAgIGlmIChjYWxsZXJDb2RlQmxv
Y2sgJiYgY2FsbGVyQ29kZUJsb2NrLT5nZXRKSVRUeXBlKCkgPT0gSklUQ29kZTo6REZHSklUKSB7
CiAgICAgICAgICAgICB1bnNpZ25lZCBjb2RlT3JpZ2luSW5kZXggPSBjYWxsZXJGcmFtZS0+Y29k
ZU9yaWdpbkluZGV4Rm9yREZHKCk7CkBAIC02MzAsNyArNjM0LDcgQEAgc3RhdGljIENhbGxGcmFt
ZSogZ2V0Q2FsbGVySW5mbyhKU0dsb2JhbAogICAgICAgICAgICAgcmV0dXJuIGNhbGxlckZyYW1l
OwogICAgICAgICB9CiAjZW5kaWYKLSNpZiBFTkFCTEUoSklUKQorI2lmIEVOQUJMRShKSVQpIHx8
IEVOQUJMRShMTElOVCkKICAgICAjaWYgRU5BQkxFKERGR19KSVQpCiAgICAgICAgIGlmIChjYWxs
RnJhbWUtPmlzSW5saW5lQ2FsbEZyYW1lKCkpIHsKICAgICAgICAgICAgIElubGluZUNhbGxGcmFt
ZSogaWNmID0gY2FsbEZyYW1lLT5pbmxpbmVDYWxsRnJhbWUoKTsKQEAgLTg0NCw2ICs4NDgsOSBA
QCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRlKFByb2dyYW1FeGVjCiAgICAgaWYgKG1fcmVl
bnRyeURlcHRoID49IE1heFNtYWxsVGhyZWFkUmVlbnRyeURlcHRoICYmIG1fcmVlbnRyeURlcHRo
ID49IGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLm1heFJlZW50cnlEZXB0aCkKICAgICAgICAgcmV0
dXJuIGNoZWNrZWRSZXR1cm4odGhyb3dTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKSk7CiAK
KyAgICAvLyBGaXJzdCBjaGVjayBpZiB0aGUgInByb2dyYW0iIGlzIGFjdHVhbGx5IGp1c3QgYSBK
U09OIG9iamVjdC4gSWYgc28sCisgICAgLy8gd2UnbGwgaGFuZGxlIHRoZSBKU09OIG9iamVjdCBo
ZXJlLiBFbHNlLCB3ZSdsbCBoYW5kbGUgcmVhbCBKUyBjb2RlCisgICAgLy8gYmVsb3cgYXQgZmFp
bGVkSlNPTlAuCiAgICAgRHluYW1pY0dsb2JhbE9iamVjdFNjb3BlIGdsb2JhbE9iamVjdFNjb3Bl
KCpzY29wZUNoYWluLT5nbG9iYWxEYXRhLCBzY29wZUNoYWluLT5nbG9iYWxPYmplY3QuZ2V0KCkp
OwogICAgIFZlY3RvcjxKU09OUERhdGE+IEpTT05QRGF0YTsKICAgICBib29sIHBhcnNlUmVzdWx0
OwpAQCAtOTQ0LDE2ICs5NTEsMjIgQEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZShQcm9n
cmFtRXhlYwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIGZhaWxlZEpTT05QOgorICAg
IC8vIElmIHdlIGdldCBoZXJlLCB0aGVuIHdlIGhhdmUgYWxyZWFkeSBwcm92ZW4gdGhhdCB0aGUg
c2NyaXB0IGlzIG5vdCBhIEpTT04KKyAgICAvLyBvYmplY3QuCisKKyAgICAvLyBDb21waWxlIHNv
dXJjZSB0byBieXRlY29kZSBpZiBuZWNlc3Nhcnk6CiAgICAgSlNPYmplY3QqIGVycm9yID0gcHJv
Z3JhbS0+Y29tcGlsZShjYWxsRnJhbWUsIHNjb3BlQ2hhaW4pOwogICAgIGlmIChlcnJvcikKICAg
ICAgICAgcmV0dXJuIGNoZWNrZWRSZXR1cm4odGhyb3dFcnJvcihjYWxsRnJhbWUsIGVycm9yKSk7
CiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSAmcHJvZ3JhbS0+Z2VuZXJhdGVkQnl0ZWNvZGUo
KTsKIAorICAgIC8vIFJlc2VydmUgc3RhY2sgc3BhY2UgZm9yIHRoaXMgaW52b2NhdGlvbjoKICAg
ICBSZWdpc3Rlciogb2xkRW5kID0gbV9yZWdpc3RlckZpbGUuZW5kKCk7CiAgICAgUmVnaXN0ZXIq
IG5ld0VuZCA9IG9sZEVuZCArIGNvZGVCbG9jay0+bnVtUGFyYW1ldGVycygpICsgUmVnaXN0ZXJG
aWxlOjpDYWxsRnJhbWVIZWFkZXJTaXplICsgY29kZUJsb2NrLT5tX251bUNhbGxlZVJlZ2lzdGVy
czsKICAgICBpZiAoIW1fcmVnaXN0ZXJGaWxlLmdyb3cobmV3RW5kKSkKICAgICAgICAgcmV0dXJu
IGNoZWNrZWRSZXR1cm4odGhyb3dTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKSk7CiAKKyAg
ICAvLyBQdXNoIHRoZSBjYWxsIGZyYW1lIGZvciB0aGlzIGludm9jYXRpb246CiAgICAgQ2FsbEZy
YW1lKiBuZXdDYWxsRnJhbWUgPSBDYWxsRnJhbWU6OmNyZWF0ZShvbGRFbmQgKyBjb2RlQmxvY2st
Pm51bVBhcmFtZXRlcnMoKSArIFJlZ2lzdGVyRmlsZTo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSk7CiAg
ICAgQVNTRVJUKGNvZGVCbG9jay0+bnVtUGFyYW1ldGVycygpID09IDEpOyAvLyAxIHBhcmFtZXRl
ciBmb3IgJ3RoaXMnLgogICAgIG5ld0NhbGxGcmFtZS0+aW5pdChjb2RlQmxvY2ssIDAsIHNjb3Bl
Q2hhaW4sIENhbGxGcmFtZTo6bm9DYWxsZXIoKSwgY29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCks
IDApOwpAQCAtOTYzLDYgKzk3Niw3IEBAIGZhaWxlZEpTT05QOgogICAgIGlmIChQcm9maWxlciog
cHJvZmlsZXIgPSBjYWxsRnJhbWUtPmdsb2JhbERhdGEoKS5lbmFibGVkUHJvZmlsZXIoKSkKICAg
ICAgICAgcHJvZmlsZXItPndpbGxFeGVjdXRlKGNhbGxGcmFtZSwgcHJvZ3JhbS0+c291cmNlVVJM
KCksIHByb2dyYW0tPmxpbmVObygpKTsKIAorICAgIC8vIEV4ZWN1dGUgdGhlIGNvZGU6CiAgICAg
SlNWYWx1ZSByZXN1bHQ7CiAgICAgewogICAgICAgICBTYW1wbGluZ1Rvb2w6OkNhbGxSZWNvcmQg
Y2FsbFJlY29yZChtX3NhbXBsZXIuZ2V0KCkpOwpAQCAtOTcyLDcgKzk4Niw3IEBAIGZhaWxlZEpT
T05QOgogICAgICAgICBpZiAoIWNsYXNzaWNFbmFibGVkKCkpCiAgICAgICAgICAgICByZXN1bHQg
PSBwcm9ncmFtLT5nZW5lcmF0ZWRKSVRDb2RlKCkuZXhlY3V0ZSgmbV9yZWdpc3RlckZpbGUsIG5l
d0NhbGxGcmFtZSwgc2NvcGVDaGFpbi0+Z2xvYmFsRGF0YSk7CiAgICAgICAgIGVsc2UKLSNlbmRp
ZgorI2VuZGlmIC8vIEVOQUJMRShKSVQpCiAgICAgICAgICAgICByZXN1bHQgPSBwcml2YXRlRXhl
Y3V0ZShOb3JtYWwsICZtX3JlZ2lzdGVyRmlsZSwgbmV3Q2FsbEZyYW1lKTsKIAogICAgICAgICBt
X3JlZW50cnlEZXB0aC0tOwpAQCAtMTA0NCw3ICsxMDU4LDcgQEAgSlNWYWx1ZSBJbnRlcnByZXRl
cjo6ZXhlY3V0ZUNhbGwoQ2FsbEZyYQogICAgICAgICAgICAgaWYgKCFjbGFzc2ljRW5hYmxlZCgp
KQogICAgICAgICAgICAgICAgIHJlc3VsdCA9IGNhbGxEYXRhLmpzLmZ1bmN0aW9uRXhlY3V0YWJs
ZS0+Z2VuZXJhdGVkSklUQ29kZUZvckNhbGwoKS5leGVjdXRlKCZtX3JlZ2lzdGVyRmlsZSwgbmV3
Q2FsbEZyYW1lLCBjYWxsRGF0YVNjb3BlQ2hhaW4tPmdsb2JhbERhdGEpOwogICAgICAgICAgICAg
ZWxzZQotI2VuZGlmCisjZW5kaWYgLy8gRU5BQkxFKEpJVCkKICAgICAgICAgICAgICAgICByZXN1
bHQgPSBwcml2YXRlRXhlY3V0ZShOb3JtYWwsICZtX3JlZ2lzdGVyRmlsZSwgbmV3Q2FsbEZyYW1l
KTsKICAgICAgICAgICAgIG1fcmVlbnRyeURlcHRoLS07CiAgICAgICAgIH0KQEAgLTExMzgsNyAr
MTE1Miw3IEBAIEpTT2JqZWN0KiBJbnRlcnByZXRlcjo6ZXhlY3V0ZUNvbnN0cnVjdCgKICAgICAg
ICAgICAgIGlmICghY2xhc3NpY0VuYWJsZWQoKSkKICAgICAgICAgICAgICAgICByZXN1bHQgPSBj
b25zdHJ1Y3REYXRhLmpzLmZ1bmN0aW9uRXhlY3V0YWJsZS0+Z2VuZXJhdGVkSklUQ29kZUZvckNv
bnN0cnVjdCgpLmV4ZWN1dGUoJm1fcmVnaXN0ZXJGaWxlLCBuZXdDYWxsRnJhbWUsIGNvbnN0cnVj
dERhdGFTY29wZUNoYWluLT5nbG9iYWxEYXRhKTsKICAgICAgICAgICAgIGVsc2UKLSNlbmRpZgor
I2VuZGlmIC8vIEVOQUJMRShKSVQpCiAgICAgICAgICAgICAgICAgcmVzdWx0ID0gcHJpdmF0ZUV4
ZWN1dGUoTm9ybWFsLCAmbV9yZWdpc3RlckZpbGUsIG5ld0NhbGxGcmFtZSk7CiAgICAgICAgICAg
ICBtX3JlZW50cnlEZXB0aC0tOwogICAgICAgICB9CkBAIC0xMjQ1LDcgKzEyNTksNyBAQCBKU1Zh
bHVlIEludGVycHJldGVyOjpleGVjdXRlKENhbGxGcmFtZUNsCiAjaWYgRU5BQkxFKENMQVNTSUNf
SU5URVJQUkVURVIpCiAgICAgICAgIGVsc2UKICNlbmRpZgotI2VuZGlmCisjZW5kaWYgLy8gRU5B
QkxFKEpJVCkKICNpZiBFTkFCTEUoQ0xBU1NJQ19JTlRFUlBSRVRFUikKICAgICAgICAgICAgIHJl
c3VsdCA9IHByaXZhdGVFeGVjdXRlKE5vcm1hbCwgJm1fcmVnaXN0ZXJGaWxlLCBjbG9zdXJlLm5l
d0NhbGxGcmFtZSk7CiAjZW5kaWYKQEAgLTEzNTAsNyArMTM2NCw3IEBAIEpTVmFsdWUgSW50ZXJw
cmV0ZXI6OmV4ZWN1dGUoRXZhbEV4ZWN1dGEKICNpZiBFTkFCTEUoQ0xBU1NJQ19JTlRFUlBSRVRF
UikKICAgICAgICAgZWxzZQogI2VuZGlmCi0jZW5kaWYKKyNlbmRpZiAvLyBFTkFCTEUoSklUKQog
I2lmIEVOQUJMRShDTEFTU0lDX0lOVEVSUFJFVEVSKQogICAgICAgICAgICAgcmVzdWx0ID0gcHJp
dmF0ZUV4ZWN1dGUoTm9ybWFsLCAmbV9yZWdpc3RlckZpbGUsIG5ld0NhbGxGcmFtZSk7CiAjZW5k
aWYKQEAgLTE3MTQsOSArMTcyOCw5IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OnByaXZhdGVFeGVj
dXRlKEV4ZWMKICAgICAgICAgICAgIFVQREFURV9CWVRFQ09ERV9PRkZTRVQoKTsKICNlbHNlCiAg
ICAgI2RlZmluZSBERUZJTkVfT1BDT0RFKG9wY29kZSkgb3Bjb2RlOiBVUERBVEVfQllURUNPREVf
T0ZGU0VUKCk7Ci0jZW5kaWYKKyNlbmRpZiAvLyAhRU5BQkxFKE9QQ09ERV9TVEFUUykKICAgICBO
RVhUX0lOU1RSVUNUSU9OKCk7Ci0jZWxzZQorI2Vsc2UgLy8gIUVOQUJMRShDT01QVVRFRF9HT1RP
X0NMQVNTSUNfSU5URVJQUkVURVIpCiAgICAgI2RlZmluZSBORVhUX0lOU1RSVUNUSU9OKCkgU0FN
UExFKGNvZGVCbG9jaywgdlBDKTsgZ290byBpbnRlcnByZXRlckxvb3BTdGFydAogI2lmIEVOQUJM
RShPUENPREVfU1RBVFMpCiAgICAgI2RlZmluZSBERUZJTkVfT1BDT0RFKG9wY29kZSkgXApAQCAt
MTcyOSw3ICsxNzQzLDcgQEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6cHJpdmF0ZUV4ZWN1dGUoRXhl
YwogICAgIHdoaWxlICgxKSB7IC8vIGl0ZXJhdG9yIGxvb3AgYmVnaW5zCiAgICAgaW50ZXJwcmV0
ZXJMb29wU3RhcnQ6OwogICAgIHN3aXRjaCAodlBDLT51Lm9wY29kZSkKLSNlbmRpZgorI2VuZGlm
IC8vICFFTkFCTEUoQ09NUFVURURfR09UT19DTEFTU0lDX0lOVEVSUFJFVEVSKQogICAgIHsKICAg
ICBERUZJTkVfT1BDT0RFKG9wX25ld19vYmplY3QpIHsKICAgICAgICAgLyogbmV3X29iamVjdCBk
c3QocikKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRl
cnByZXRlci5oCShyZXZpc2lvbiAxMjcxNTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50
ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTk0LDcgKzE5NCw3IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICBPcGNvZGUgZ2V0T3Bjb2RlKE9wY29kZUlEIGlkKQog
ICAgICAgICB7CiAgICAgICAgICAgICBBU1NFUlQobV9pbml0aWFsaXplZCk7Ci0jaWYgRU5BQkxF
KENPTVBVVEVEX0dPVE9fQ0xBU1NJQ19JTlRFUlBSRVRFUikgfHwgRU5BQkxFKExMSU5UKQorI2lm
IEVOQUJMRShDT01QVVRFRF9HT1RPX09QQ09ERVMpCiAgICAgICAgICAgICByZXR1cm4gbV9vcGNv
ZGVUYWJsZVtpZF07CiAjZWxzZQogICAgICAgICAgICAgcmV0dXJuIGlkOwpAQCAtMjA0LDYgKzIw
NCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBPcGNvZGVJRCBnZXRPcGNvZGVJRChPcGNv
ZGUgb3Bjb2RlKQogICAgICAgICB7CiAgICAgICAgICAgICBBU1NFUlQobV9pbml0aWFsaXplZCk7
CisjaWYgRU5BQkxFKENPTVBVVEVEX0dPVE9fT1BDT0RFUykKICNpZiBFTkFCTEUoTExJTlQpCiAg
ICAgICAgICAgICBBU1NFUlQoaXNPcGNvZGUob3Bjb2RlKSk7CiAgICAgICAgICAgICByZXR1cm4g
bV9vcGNvZGVJRFRhYmxlLmdldChvcGNvZGUpOwpAQCAtMjEzLDkgKzIxNCwxMCBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8T3Bjb2RlSUQ+KGJp
dHdpc2VfY2FzdDx1aW50cHRyX3Q+KG9wY29kZSkpOwogCiAgICAgICAgICAgICByZXR1cm4gbV9v
cGNvZGVJRFRhYmxlLmdldChvcGNvZGUpOwotI2Vsc2UKKyNlbmRpZiAvLyBFTkFCTEUoQ09NUFVU
RURfR09UT19DTEFTU0lDX0lOVEVSUFJFVEVSKQorI2Vsc2UgLy8gIUVOQUJMRShDT01QVVRFRF9H
T1RPX09QQ09ERVMpCiAgICAgICAgICAgICByZXR1cm4gb3Bjb2RlOwotI2VuZGlmCisjZW5kaWYg
Ly8gIUVOQUJMRShDT01QVVRFRF9HT1RPX09QQ09ERVMpCiAgICAgICAgIH0KICAgICAgICAgCiAg
ICAgICAgIGJvb2wgY2xhc3NpY0VuYWJsZWQoKQpAQCAtMjg3LDYgKzI4OSw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogCiAgICAgICAgIFJlZ2lzdGVyRmlsZSBtX3JlZ2lzdGVyRmlsZTsKICAgICAgICAg
CisjaWYgRU5BQkxFKENPTVBVVEVEX0dPVE9fT1BDT0RFUykKICNpZiBFTkFCTEUoTExJTlQpCiAg
ICAgICAgIE9wY29kZSogbV9vcGNvZGVUYWJsZTsgLy8gTWFwcyBPcGNvZGVJRCA9PiBPcGNvZGUg
Zm9yIGNvbXBpbGluZwogICAgICAgICBIYXNoTWFwPE9wY29kZSwgT3Bjb2RlSUQ+IG1fb3Bjb2Rl
SURUYWJsZTsgLy8gTWFwcyBPcGNvZGUgPT4gT3Bjb2RlSUQgZm9yIGRlY29tcGlsaW5nCkBAIC0y
OTQsNiArMjk3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIE9wY29kZSBtX29wY29kZVRh
YmxlW251bU9wY29kZUlEc107IC8vIE1hcHMgT3Bjb2RlSUQgPT4gT3Bjb2RlIGZvciBjb21waWxp
bmcKICAgICAgICAgSGFzaE1hcDxPcGNvZGUsIE9wY29kZUlEPiBtX29wY29kZUlEVGFibGU7IC8v
IE1hcHMgT3Bjb2RlID0+IE9wY29kZUlEIGZvciBkZWNvbXBpbGluZwogI2VuZGlmCisjZW5kaWYg
Ly8gRU5BQkxFKENPTVBVVEVEX0dPVE9fT1BDT0RFUykKIAogI2lmICFBU1NFUlRfRElTQUJMRUQK
ICAgICAgICAgYm9vbCBtX2luaXRpYWxpemVkOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9Ib3N0Q2FsbFJldHVyblZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9Ib3N0Q2FsbFJldHVyblZhbHVlLmgJKHJldmlzaW9uIDEyNzE1OCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSG9zdENhbGxSZXR1cm5WYWx1ZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zMyw3ICszMyw3IEBACiAvLyBVbmZvcnR1bmF0ZWx5IHRoaXMgb25seSB3b3JrcyBv
biBHQ0MtbGlrZSBjb21waWxlcnMuIEFuZCBpdCdzIGN1cnJlbnRseSBvbmx5IHVzZWQKIC8vIGJ5
IExMSW50IGFuZCBERkcsIHdoaWNoIGFsc28gYXJlIHJlc3RyaWN0ZWQgdG8gR0NDLWxpa2UgY29t
cGlsZXJzLiBXZSBzaG91bGQKIC8vIHByb2JhYmx5IGZpeCB0aGF0IGF0IHNvbWUgcG9pbnQuCi0j
aWYgQ09NUElMRVIoR0NDKQorI2lmIENPTVBJTEVSKEdDQykgJiYgRU5BQkxFKEpJVCkKIAogI2lm
IENBTExJTkdfQ09OVkVOVElPTl9JU19TVERDQUxMCiAjZGVmaW5lIEhPU1RfQ0FMTF9SRVRVUk5f
VkFMVUVfT1BUSU9OIENERUNMCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENv
ZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGUuaAko
cmV2aXNpb24gMTI3MTU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb2RlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAKICNpZm5kZWYgSklUQ29kZV9oCiAjZGVm
aW5lIEpJVENvZGVfaAogCi0jaWYgRU5BQkxFKEpJVCkKKyNpZiBFTkFCTEUoSklUKSB8fCBFTkFC
TEUoTExJTlQpCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiSlNWYWx1ZS5oIgog
I2luY2x1ZGUgIkRpc2Fzc2VtYmxlci5oIgpAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3BhY2UgSlND
IHsKICNlbmRpZgogICAgIAogICAgIGNsYXNzIEpJVENvZGUgewotI2lmIEVOQUJMRShKSVQpCisj
aWYgRU5BQkxFKEpJVCkgfHwgRU5BQkxFKExMSU5UKQogICAgICAgICB0eXBlZGVmIE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZiBDb2RlUmVmOwogICAgICAgICB0eXBlZGVmIE1hY3JvQXNzZW1ibGVyQ29k
ZVB0ciBDb2RlUHRyOwogI2Vsc2UKQEAgLTc3LDcgKzc3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgICAgICByZXR1cm4gaml0VHlwZSA9PSBJbnRlcnByZXRlclRodW5rIHx8IGppdFR5cGUg
PT0gQmFzZWxpbmVKSVQ7CiAgICAgICAgIH0KICAgICAgICAgCi0jaWYgRU5BQkxFKEpJVCkKKyNp
ZiBFTkFCTEUoSklUKSB8fCBFTkFCTEUoTExJTlQpCiAgICAgICAgIEpJVENvZGUoKQogICAgICAg
ICAgICAgOiBtX2ppdFR5cGUoTm9uZSkKICAgICAgICAgewpAQCAtMTI3LDEyICsxMjcsMTQgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KHJlc3VsdCk7CiAgICAgICAgIH0KIAorI2lmIEVOQUJMRShKSVQpCiAgICAgICAgIC8vIEV4ZWN1
dGUgdGhlIGNvZGUhCiAgICAgICAgIGlubGluZSBKU1ZhbHVlIGV4ZWN1dGUoUmVnaXN0ZXJGaWxl
KiByZWdpc3RlckZpbGUsIENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU0dsb2JhbERhdGEqIGdsb2Jh
bERhdGEpCiAgICAgICAgIHsKICAgICAgICAgICAgIEpTVmFsdWUgcmVzdWx0ID0gSlNWYWx1ZTo6
ZGVjb2RlKGN0aVRyYW1wb2xpbmUobV9yZWYuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCksIHJl
Z2lzdGVyRmlsZSwgY2FsbEZyYW1lLCAwLCAwLCBnbG9iYWxEYXRhKSk7CiAgICAgICAgICAgICBy
ZXR1cm4gZ2xvYmFsRGF0YS0+ZXhjZXB0aW9uID8ganNOdWxsKCkgOiByZXN1bHQ7CiAgICAgICAg
IH0KKyNlbmRpZgogCiAgICAgICAgIHZvaWQqIHN0YXJ0KCkgY29uc3QKICAgICAgICAgewpAQCAt
MTgyLDcgKzE4NCw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIENvZGVSZWYgbV9yZWY7
CiAgICAgICAgIEpJVFR5cGUgbV9qaXRUeXBlOwotI2VuZGlmIC8vIEVOQUJMRShKSVQpCisjZW5k
aWYgLy8gRU5BQkxFKEpJVCkgfHwgRU5BQkxFKExMSU5UKQogICAgIH07CiAKIH07CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEV4Y2VwdGlvbnMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURXhjZXB0aW9ucy5jcHAJKHJldmlzaW9uIDEy
NzE1OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURXhjZXB0aW9ucy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAKICNpbmNsdWRlICJKU0dsb2JhbERhdGEuaCIK
ICNpbmNsdWRlICJKU1ZhbHVlLmgiCiAKLSNpZiBFTkFCTEUoSklUKQorI2lmIEVOQUJMRShKSVQp
IHx8IEVOQUJMRShMTElOVCkKIAogbmFtZXNwYWNlIEpTQyB7CiAKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklURXhjZXB0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklURXhjZXB0aW9ucy5oCShyZXZpc2lvbiAxMjcxNTgpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEV4Y2VwdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAt
MjksNyArMjksNyBAQAogI2luY2x1ZGUgIkpTVmFsdWUuaCIKICNpbmNsdWRlICJNYWNyb0Fzc2Vt
YmxlckNvZGVSZWYuaCIKIAotI2lmIEVOQUJMRShBU1NFTUJMRVIpCisjaWYgRU5BQkxFKEpJVCkg
fHwgRU5BQkxFKExMSU5UKQogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtNTAsNyArNTAsNyBAQCBF
eGNlcHRpb25IYW5kbGVyIGppdFRocm93KEpTR2xvYmFsRGF0YSosCiAKIH0gLy8gbmFtZXNwYWNl
IEpTQwogCi0jZW5kaWYKKyNlbmRpZiAvLyBFTkFCTEUoSklUKSB8fCBFTkFCTEUoTExJTlQpCiAK
ICNlbmRpZiAvLyBKSVRFeGNlcHRpb25zX2gKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KU0ludGVyZmFjZUpJVC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSlNJbnRlcmZhY2VKSVQuaAkocmV2aXNpb24gMTI3MTU4KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KU0ludGVyZmFjZUpJVC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICsz
Niw4IEBACiAjaW5jbHVkZSA8d3RmL0Fsd2F5c0lubGluZS5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KIAorI2lmIEVOQUJMRShKSVQpCisKIG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNzIEpT
SW50ZXJmYWNlSklUIDogcHVibGljIE1hY3JvQXNzZW1ibGVyIHsKICAgICBwdWJsaWM6CkBAIC0z
MzMsNiArMzM1LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHJldHVybiBBZGRyZXNzKGJh
c2UsIChzdGF0aWNfY2FzdDx1bnNpZ25lZD4odmlydHVhbFJlZ2lzdGVySW5kZXgpICogc2l6ZW9m
KFJlZ2lzdGVyKSkpOwogICAgIH0KIAotfQorfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAv
LyBFTkFCTEUoSklUKQogCiAjZW5kaWYgLy8gSlNJbnRlcmZhY2VKSVRfaApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9MTEludERhdGEuaAkocmV2aXNpb24gMTI3MTU4KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC03
MSw3ICs3MSw3IEBAIGlubGluZSBPcGNvZGUqIG9wY29kZU1hcCgpCiAKIGlubGluZSBPcGNvZGUg
Z2V0T3Bjb2RlKE9wY29kZUlEIGlkKQogewotI2lmIEhBVkUoQ09NUFVURURfR09UTykKKyNpZiBF
TkFCTEUoQ09NUFVURURfR09UT19PUENPREVTKQogICAgIHJldHVybiBEYXRhOjpzX29wY29kZU1h
cFtpZF07CiAjZWxzZQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxPcGNvZGU+KGlkKTsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludEVudHJ5cG9pbnRzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRFbnRyeXBvaW50cy5jcHAJ
KHJldmlzaW9uIDEyNzE1OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludEVu
dHJ5cG9pbnRzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTIsNiArNTIsNyBAQCB2b2lkIGdldEZ1
bmN0aW9uRW50cnlwb2ludChKU0dsb2JhbERhdGEmCiAgICAgICAgIHJldHVybjsKICAgICB9CiAg
ICAgCisjaWYgRU5BQkxFKEpJVCkKICAgICBpZiAoa2luZCA9PSBDb2RlRm9yQ2FsbCkgewogICAg
ICAgICBqaXRDb2RlID0gSklUQ29kZShnbG9iYWxEYXRhLmdldENUSVN0dWIoZnVuY3Rpb25Gb3JD
YWxsRW50cnlUaHVua0dlbmVyYXRvciksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmspOwogICAg
ICAgICBhcml0eUNoZWNrID0gZ2xvYmFsRGF0YS5nZXRDVElTdHViKGZ1bmN0aW9uRm9yQ2FsbEFy
aXR5Q2hlY2tUaHVua0dlbmVyYXRvcikuY29kZSgpOwpAQCAtNjEsNiArNjIsNyBAQCB2b2lkIGdl
dEZ1bmN0aW9uRW50cnlwb2ludChKU0dsb2JhbERhdGEmCiAgICAgQVNTRVJUKGtpbmQgPT0gQ29k
ZUZvckNvbnN0cnVjdCk7CiAgICAgaml0Q29kZSA9IEpJVENvZGUoZ2xvYmFsRGF0YS5nZXRDVElT
dHViKGZ1bmN0aW9uRm9yQ29uc3RydWN0RW50cnlUaHVua0dlbmVyYXRvciksIEpJVENvZGU6Oklu
dGVycHJldGVyVGh1bmspOwogICAgIGFyaXR5Q2hlY2sgPSBnbG9iYWxEYXRhLmdldENUSVN0dWIo
ZnVuY3Rpb25Gb3JDb25zdHJ1Y3RBcml0eUNoZWNrVGh1bmtHZW5lcmF0b3IpLmNvZGUoKTsKKyNl
bmRpZiAvLyBFTkFCTEUoSklUKQogfQogCiB2b2lkIGdldEV2YWxFbnRyeXBvaW50KEpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSwgSklUQ29kZSYgaml0Q29kZSkKQEAgLTY5LDggKzcxLDkgQEAgdm9p
ZCBnZXRFdmFsRW50cnlwb2ludChKU0dsb2JhbERhdGEmIGdsbwogICAgICAgICBqaXRDb2RlID0g
SklUQ29kZShNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZUxMSW50Q29kZVJlZihsbGludF9l
dmFsX3Byb2xvZ3VlKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuayk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9Ci0gICAgCisjaWYgRU5BQkxFKEpJVCkgICAgCiAgICAgaml0Q29kZSA9IEpJVENv
ZGUoZ2xvYmFsRGF0YS5nZXRDVElTdHViKGV2YWxFbnRyeVRodW5rR2VuZXJhdG9yKSwgSklUQ29k
ZTo6SW50ZXJwcmV0ZXJUaHVuayk7CisjZW5kaWYKIH0KIAogdm9pZCBnZXRQcm9ncmFtRW50cnlw
b2ludChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpJVENvZGUmIGppdENvZGUpCkBAIC03OSw4
ICs4Miw5IEBAIHZvaWQgZ2V0UHJvZ3JhbUVudHJ5cG9pbnQoSlNHbG9iYWxEYXRhJiAKICAgICAg
ICAgaml0Q29kZSA9IEpJVENvZGUoTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVMTEludENv
ZGVSZWYobGxpbnRfcHJvZ3JhbV9wcm9sb2d1ZSksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmsp
OwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIAorI2lmIEVOQUJMRShKSVQpCiAgICAgaml0
Q29kZSA9IEpJVENvZGUoZ2xvYmFsRGF0YS5nZXRDVElTdHViKHByb2dyYW1FbnRyeVRodW5rR2Vu
ZXJhdG9yKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuayk7CisjZW5kaWYKIH0KIAogfSB9IC8v
IG5hbWVzcGFjZSBKU0M6OkxMSW50CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TExJbnRPZmZzZXRzRXh0cmFjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTExJbnRPZmZzZXRzRXh0cmFjdG9yLmNwcAkocmV2aXNpb24gMTI3MTU4KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2Zmc2V0c0V4dHJhY3Rvci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTYyLDcgKzYyLDcgQEAgcHVibGljOgogCiBjb25zdCB1bnNpZ25l
ZCogTExJbnRPZmZzZXRzRXh0cmFjdG9yOjpkdW1teSgpCiB7Ci0jaWYgRU5BQkxFKEpJVCkKKyNp
ZiBFTkFCTEUoTExJTlQpCiAvLyBUaGlzIGlzIGEgZmlsZSBnZW5lcmF0ZWQgYnkgb2ZmbGluZWFz
bS9nZW5lcmF0ZV9vZmZzZXRzX2V4dHJhY3Rvci5yYiwgYW5kIGNvbnRhaW5zIGNvZGUKIC8vIHRv
IGNyZWF0ZSBhIHRhYmxlIG9mIG9mZnNldHMsIHNpemVzLCBhbmQgYSBoZWFkZXIgaWRlbnRpZnlp
bmcgd2hhdCBjb21iaW5hdGlvbiBvZgogLy8gUGxhdGZvcm0uaCBtYWNyb3Mgd2UgaGF2ZSBzZXQu
IFdlIGluY2x1ZGUgaXQgaW5zaWRlIG9mIGEgbWV0aG9kIG9uIExMSW50T2Zmc2V0c0V4dHJhY3Rv
cgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMu
Y3BwCShyZXZpc2lvbiAxMjcxNTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJ
bnRTbG93UGF0aHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNTYsNiArMjU2LDcgQEAgTExJTlRf
U0xPV19QQVRIX0RFQ0woc3BlY2lhbF90cmFjZSkKICAgICBMTElOVF9FTkRfSU1QTCgpOwogfQog
CisjaWYgRU5BQkxFKEpJVCkKIGlubGluZSBib29sIHNob3VsZEpJVChFeGVjU3RhdGUqIGV4ZWMp
CiB7CiAgICAgLy8gWW91IGNhbiBtb2RpZnkgdGhpcyB0byB0dXJuIG9mZiBKSVR0aW5nIHdpdGhv
dXQgcmVidWlsZGluZyB0aGUgd29ybGQuCkBAIC0zOTEsNiArMzkyLDcgQEAgTExJTlRfU0xPV19Q
QVRIX0RFQ0wocmVwbGFjZSkKICAgICAgICAgY29kZUJsb2NrLT5kb250SklUQW55dGltZVNvb24o
KTsKICAgICBMTElOVF9FTkRfSU1QTCgpOwogfQorI2VuZGlmIC8vIEVOQUJMRShKSVQpCiAKIExM
SU5UX1NMT1dfUEFUSF9ERUNMKHJlZ2lzdGVyX2ZpbGVfY2hlY2spCiB7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5jcHAJKHJldmlzaW9uIDEy
NzE1OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM3NSwxMiArMzc1LDEzIEBAIE5hdGl2ZUV4ZWN1dGFibGUqIEpT
R2xvYmFsRGF0YTo6Z2V0SG9zdEYKICAgICBBU1NFUlQoY2FuVXNlSklUKCkpOwogICAgIHJldHVy
biBqaXRTdHVicy0+aG9zdEZ1bmN0aW9uU3R1Yih0aGlzLCBmdW5jdGlvbiwgaW50cmluc2ljICE9
IE5vSW50cmluc2ljID8gdGh1bmtHZW5lcmF0b3JGb3JJbnRyaW5zaWMoaW50cmluc2ljKSA6IDAs
IGludHJpbnNpYyk7CiB9Ci0jZWxzZQorCisjZWxzZSAvLyAhRU5BQkxFKEpJVCkKIE5hdGl2ZUV4
ZWN1dGFibGUqIEpTR2xvYmFsRGF0YTo6Z2V0SG9zdEZ1bmN0aW9uKE5hdGl2ZUZ1bmN0aW9uIGZ1
bmN0aW9uLCBOYXRpdmVGdW5jdGlvbiBjb25zdHJ1Y3RvcikKIHsKICAgICByZXR1cm4gTmF0aXZl
RXhlY3V0YWJsZTo6Y3JlYXRlKCp0aGlzLCBmdW5jdGlvbiwgY29uc3RydWN0b3IpOwogfQotI2Vu
ZGlmCisjZW5kaWYgLy8gIUVOQUJMRShKSVQpCiAKIEpTR2xvYmFsRGF0YTo6Q2xpZW50RGF0YTo6
fkNsaWVudERhdGEoKQogewpJbmRleDogU291cmNlL1dURi9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dURi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyNzE1OSkKKysrIFNvdXJjZS9XVEYv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTItMDgtMzAgIE1h
cmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgorCisgICAgICAgIFJlbmRlciB1bnRvICNpZmRl
ZidzIHRoYXQgd2hpY2ggYmVsb25ncyB0byB0aGVtLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU0ODIuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDogQWRkZWQgRU5BQkxFKENP
TVBVVEVEX0dPVE9fT1BDT0RFUykuCisKIDIwMTItMDgtMzAgIFBhdHJpY2sgR2Fuc3RlcmVyICA8
cGFyb2dhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQnVpbGQgZml4IGZvciBDT01QSUxFUihNU1ZD
KSAmJiAhQ1BVKFg4NikgYWZ0ZXIgcjEyNzAwMS4KSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAkocmV2aXNpb24g
MTI3MTU4KQorKysgU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAkod29ya2luZyBjb3B5KQpAQCAt
OTc4LDYgKzk3OCwxMCBAQAogI2RlZmluZSBFTkFCTEVfQ09NUFVURURfR09UT19DTEFTU0lDX0lO
VEVSUFJFVEVSIDEKICNlbmRpZgogCisjaWYgSEFWRShDT01QVVRFRF9HT1RPKSB8fCBFTkFCTEUo
TExJTlQpCisjZGVmaW5lIEVOQUJMRV9DT01QVVRFRF9HT1RPX09QQ09ERVMgMQorI2VuZGlmCisK
IC8qIFJlZ3VsYXIgRXhwcmVzc2lvbiBUcmFjaW5nIC0gU2V0IHRvIDEgdG8gdHJhY2UgUmVnRXhw
J3MgaW4ganNjLiAgUmVzdWx0cyBkdW1wZWQgYXQgZXhpdCAqLwogI2RlZmluZSBFTkFCTEVfUkVH
RVhQX1RSQUNJTkcgMAogCg==
</data>
<flag name="review"
          id="172357"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
    <flag name="commit-queue"
          id="172358"
          type_id="3"
          status="-"
          setter="gyuyoung.kim"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161548</attachid>
            <date>2012-08-30 13:49:15 -0700</date>
            <delta_ts>2012-08-30 15:21:26 -0700</delta_ts>
            <desc>Fix HAVE(COMPUTED_GOTO) &amp;&amp; !ENABLE(COMPUTED_GOTO_CLASSIC_INTERPRETER) case.</desc>
            <filename>bug-95482.patch</filename>
            <type>text/plain</type>
            <size>28162</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTI3MTU5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY0IEBA
CisyMDEyLTA4LTMwICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZW5kZXIgdW50byAjaWZkZWYncyB0aGF0IHdoaWNoIGJlbG9uZyB0byB0aGVtLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU0ODIuCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmaW5pbmcgLyBkaXNhbWJp
Z3VhdGluZyBiZXR3ZWVuICNpZmRlZnMgYW5kIGFkZGluZyBzb21lLiBGb3IKKyAgICAgICAgZXhh
bXBsZSwgRU5BQkxFKEpJVCkgaXMgY29uZmxhdGVkIHdpdGggRU5BQkxFKExMSU5UKSBpbiBzb21l
IHBsYWNlcy4KKyAgICAgICAgQWxzbywgd2UgbmVlZCB0byBhZGQgRU5BQkxFKENPTVBVVEVEX0dP
VE9fT1BDT0RFUykgdG8gaW5kaWNhdGUgdGhhdCB3ZQorICAgICAgICB3YW50IGludGVycHJldGVk
IG9wY29kZXMgdG8gdXNlIENPTVBVVEVEIEdPVE9zIGFwYXJ0IGZyb20gRU5BQkxFKExMSU5UKQor
ICAgICAgICBhbmQgRU5BQkxFKENPTVBVVEVEX0dPVE9fQ0xBU1NJQ19JTlRFUlBSRVRFUikuIEFs
c28gY2xlYW5lZCB1cCAjaWZkZWZzCisgICAgICAgIGluIGNlcnRhaW4gcGxhY2VzIHdoaWNoIHdl
cmUgcHJldmlvdXNseSBpbmNvcnJlY3QuCisKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2su
Y3BwOgorICAgICAgICAoSlNDKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpieXRlY29kZU9m
ZnNldCk6CisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmg6CisgICAgICAgIChDb2RlQmxv
Y2spOgorICAgICAgICAqIGJ5dGVjb2RlL09wY29kZS5oOgorICAgICAgICAoSlNDOjpwYWRPcGNv
ZGVOYW1lKToKKyAgICAgICAgKiBjb25maWcuaDoKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9u
cy5jcHA6CisgICAgICAgICogaW50ZXJwcmV0ZXIvQWJzdHJhY3RQQy5jcHA6CisgICAgICAgIChK
U0M6OkFic3RyYWN0UEM6OkFic3RyYWN0UEMpOgorICAgICAgICAqIGludGVycHJldGVyL0NhbGxG
cmFtZS5oOgorICAgICAgICAoRXhlY1N0YXRlKToKKyAgICAgICAgKiBpbnRlcnByZXRlci9JbnRl
cnByZXRlci5jcHA6CisgICAgICAgIChKU0M6OkludGVycHJldGVyOjp+SW50ZXJwcmV0ZXIpOgor
ICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChKU0M6Oklu
dGVycHJldGVyOjppc09wY29kZSk6CisgICAgICAgIChKU0M6OkludGVycHJldGVyOjp1bndpbmRD
YWxsRnJhbWUpOgorICAgICAgICAoSlNDOjpnZXRMaW5lTnVtYmVyRm9yQ2FsbEZyYW1lKToKKyAg
ICAgICAgKEpTQzo6Z2V0Q2FsbGVySW5mbyk6CisgICAgICAgIChKU0M6OkludGVycHJldGVyOjpl
eGVjdXRlKToKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmV4ZWN1dGVDYWxsKToKKyAgICAg
ICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmV4ZWN1dGVDb25zdHJ1Y3QpOgorICAgICAgICAoSlNDOjpJ
bnRlcnByZXRlcjo6cHJpdmF0ZUV4ZWN1dGUpOgorICAgICAgICAqIGludGVycHJldGVyL0ludGVy
cHJldGVyLmg6CisgICAgICAgIChKU0M6OkludGVycHJldGVyOjpnZXRPcGNvZGUpOgorICAgICAg
ICAoSlNDOjpJbnRlcnByZXRlcjo6Z2V0T3Bjb2RlSUQpOgorICAgICAgICAoSW50ZXJwcmV0ZXIp
OgorICAgICAgICAqIGppdC9Ib3N0Q2FsbFJldHVyblZhbHVlLmg6CisgICAgICAgICogaml0L0pJ
VENvZGUuaDoKKyAgICAgICAgKEpJVENvZGUpOgorICAgICAgICAqIGppdC9KSVRFeGNlcHRpb25z
LmNwcDoKKyAgICAgICAgKiBqaXQvSklURXhjZXB0aW9ucy5oOgorICAgICAgICAqIGppdC9KU0lu
dGVyZmFjZUpJVC5oOgorICAgICAgICAqIGxsaW50L0xMSW50RGF0YS5oOgorICAgICAgICAoSlND
OjpMTEludDo6Z2V0T3Bjb2RlKToKKyAgICAgICAgKiBsbGludC9MTEludEVudHJ5cG9pbnRzLmNw
cDoKKyAgICAgICAgKEpTQzo6TExJbnQ6OmdldEZ1bmN0aW9uRW50cnlwb2ludCk6CisgICAgICAg
IChKU0M6OkxMSW50OjpnZXRFdmFsRW50cnlwb2ludCk6CisgICAgICAgIChKU0M6OkxMSW50Ojpn
ZXRQcm9ncmFtRW50cnlwb2ludCk6CisgICAgICAgICogbGxpbnQvTExJbnRPZmZzZXRzRXh0cmFj
dG9yLmNwcDoKKyAgICAgICAgKEpTQzo6TExJbnRPZmZzZXRzRXh0cmFjdG9yOjpkdW1teSk6Cisg
ICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgorICAgICAgICAoTExJbnQpOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxEYXRhLmNwcDoKKyAgICAgICAgKEpTQyk6CisKIDIwMTIt
MDgtMzAgIFlvbmcgTGkgIDx5b2xpQHJpbS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVycnldIFNl
dCB0aW1lciBjbGllbnQgb24gcGxhdGZvcm0gdGltZXIgdXNlZCBpbiBIZWFwVGltZXIKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9jb25maWcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvY29uZmlnLmgJKHJldmlzaW9uIDEyNzE1OCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9jb25maWcuaAkod29ya2luZyBjb3B5KQpAQCAtNTcsOSArNTcsOSBAQAogI2lmbmRl
ZiBfQ1JUX1JBTkRfUwogI2RlZmluZSBfQ1JUX1JBTkRfUwogI2VuZGlmCi0jZW5kaWYKKyNlbmRp
ZiAvLyAhQ09NUElMRVIoTVNWQzdfT1JfTE9XRVIpICYmICFPUyhXSU5DRSkKIAotI2VuZGlmCisj
ZW5kaWYgLy8gT1MoV0lORE9XUykKIAogI2RlZmluZSBXVEZfQ0hBTkdFUyAxCiAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCShyZXZpc2lvbiAx
MjcxNTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjU3OCw2ICsyNTc4LDcgQEAgdm9pZCBDb2RlQmxvY2s6OnVubGlu
a0luY29taW5nQ2FsbHMoKQogICAgIHdoaWxlIChtX2luY29taW5nQ2FsbHMuYmVnaW4oKSAhPSBt
X2luY29taW5nQ2FsbHMuZW5kKCkpCiAgICAgICAgIG1faW5jb21pbmdDYWxscy5iZWdpbigpLT51
bmxpbmsoKm1fZ2xvYmFsRGF0YSwgcmVwYXRjaEJ1ZmZlcik7CiB9CisjZW5kaWYgLy8gRU5BQkxF
KEpJVCkKIAogI2lmIEVOQUJMRShMTElOVCkKIEluc3RydWN0aW9uKiBDb2RlQmxvY2s6OmFkanVz
dFBDSWZBdENhbGxTaXRlKEluc3RydWN0aW9uKiBwb3RlbnRpYWxSZXR1cm5QQykKQEAgLTI2MzEs
MTAgKzI2MzIsMTIgQEAgSW5zdHJ1Y3Rpb24qIENvZGVCbG9jazo6YWRqdXN0UENJZkF0Q2FsbAog
ICAgIC8vIE5vdCBhIGNhbGwgc2l0ZS4gTm8gbmVlZCB0byBhZGp1c3QgUEMuIEp1c3QgcmV0dXJu
IHRoZSBvcmlnaW5hbC4KICAgICByZXR1cm4gcG90ZW50aWFsUmV0dXJuUEM7CiB9Ci0jZW5kaWYK
KyNlbmRpZiAvLyBFTkFCTEUoTExJTlQpCiAKIHVuc2lnbmVkIENvZGVCbG9jazo6Ynl0ZWNvZGVP
ZmZzZXQoRXhlY1N0YXRlKiBleGVjLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MpCiB7
CisgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOworICAgIFVOVVNFRF9QQVJBTShyZXR1cm5BZGRyZXNz
KTsKICNpZiBFTkFCTEUoTExJTlQpCiAgICAgaWYgKHJldHVybkFkZHJlc3MudmFsdWUoKSA+PSBM
TEludDo6Z2V0Q29kZVB0cihsbGludF9iZWdpbikKICAgICAgICAgJiYgcmV0dXJuQWRkcmVzcy52
YWx1ZSgpIDw9IExMSW50OjpnZXRDb2RlUHRyKGxsaW50X2VuZCkpIHsKQEAgLTI2NDUsMjAgKzI2
NDgsMjMgQEAgdW5zaWduZWQgQ29kZUJsb2NrOjpieXRlY29kZU9mZnNldChFeGVjUwogICAgICAg
ICBBU1NFUlQoaW5zdHJ1Y3Rpb24pOwogCiAgICAgICAgIGluc3RydWN0aW9uID0gYWRqdXN0UENJ
ZkF0Q2FsbFNpdGUoaW5zdHJ1Y3Rpb24pOwotICAgICAgICAKICAgICAgICAgcmV0dXJuIGJ5dGVj
b2RlT2Zmc2V0KGluc3RydWN0aW9uKTsKICAgICB9Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShl
eGVjKTsKLSNlbmRpZgorI2VuZGlmIC8vICFFTkFCTEUoTExJTlQpCisKKyNpZiBFTkFCTEUoSklU
KQogICAgIGlmICghbV9yYXJlRGF0YSkKICAgICAgICAgcmV0dXJuIDE7CiAgICAgVmVjdG9yPENh
bGxSZXR1cm5PZmZzZXRUb0J5dGVjb2RlT2Zmc2V0PiYgY2FsbEluZGljZXMgPSBtX3JhcmVEYXRh
LT5tX2NhbGxSZXR1cm5JbmRleFZlY3RvcjsKICAgICBpZiAoIWNhbGxJbmRpY2VzLnNpemUoKSkK
ICAgICAgICAgcmV0dXJuIDE7CiAgICAgcmV0dXJuIGJpbmFyeVNlYXJjaDxDYWxsUmV0dXJuT2Zm
c2V0VG9CeXRlY29kZU9mZnNldCwgdW5zaWduZWQsIGdldENhbGxSZXR1cm5PZmZzZXQ+KGNhbGxJ
bmRpY2VzLmJlZ2luKCksIGNhbGxJbmRpY2VzLnNpemUoKSwgZ2V0SklUQ29kZSgpLm9mZnNldE9m
KHJldHVybkFkZHJlc3MudmFsdWUoKSkpLT5ieXRlY29kZU9mZnNldDsKLX0KKyNlbmRpZiAvLyBF
TkFCTEUoSklUKQorCisjaWYgIUVOQUJMRShMTElOVCkgJiYgIUVOQUJMRShKSVQpCisgICAgcmV0
dXJuIDE7CiAjZW5kaWYKK30KIAogdm9pZCBDb2RlQmxvY2s6OmNsZWFyRXZhbENhY2hlKCkKIHsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgJKHJldmlz
aW9uIDEyNzE1OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2su
aAkod29ya2luZyBjb3B5KQpAQCAtMjI5LDEyICsyMjksMTQgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiAqKGJpbmFyeVNlYXJjaDxNZXRob2RDYWxsTGlu
a0luZm8sIHVuc2lnbmVkLCBnZXRNZXRob2RDYWxsTGlua0luZm9CeXRlY29kZUluZGV4PihtX21l
dGhvZENhbGxMaW5rSW5mb3MuYmVnaW4oKSwgbV9tZXRob2RDYWxsTGlua0luZm9zLnNpemUoKSwg
Ynl0ZWNvZGVJbmRleCkpOwogICAgICAgICB9CisjZW5kaWYgLy8gRU5BQkxFKEpJVCkKIAogI2lm
IEVOQUJMRShMTElOVCkKICAgICAgICAgSW5zdHJ1Y3Rpb24qIGFkanVzdFBDSWZBdENhbGxTaXRl
KEluc3RydWN0aW9uKik7CiAjZW5kaWYKICAgICAgICAgdW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQo
RXhlY1N0YXRlKiwgUmV0dXJuQWRkcmVzc1B0cik7CiAKKyNpZiBFTkFCTEUoSklUKQogICAgICAg
ICB1bnNpZ25lZCBieXRlY29kZU9mZnNldEZvckNhbGxBdEluZGV4KHVuc2lnbmVkIGluZGV4KQog
ICAgICAgICB7CiAgICAgICAgICAgICBpZiAoIW1fcmFyZURhdGEpCkBAIC0yNTQsNiArMjU2LDgg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHsKICAgICAgICAgICAgIG1faW5jb21pbmdDYWxs
cy5wdXNoKGluY29taW5nKTsKICAgICAgICAgfQorI2VuZGlmIC8vIEVOQUJMRShKSVQpCisKICNp
ZiBFTkFCTEUoTExJTlQpCiAgICAgICAgIHZvaWQgbGlua0luY29taW5nQ2FsbChMTEludENhbGxM
aW5rSW5mbyogaW5jb21pbmcpCiAgICAgICAgIHsKQEAgLTI2Miw3ICsyNjYsNiBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICNlbmRpZiAvLyBFTkFCTEUoTExJTlQpCiAgICAgICAgIAogICAgICAgICB2b2lk
IHVubGlua0luY29taW5nQ2FsbHMoKTsKLSNlbmRpZiAvLyBFTkFCTEUoSklUKQogCiAjaWYgRU5B
QkxFKERGR19KSVQpIHx8IEVOQUJMRShMTElOVCkKICAgICAgICAgdm9pZCBzZXRKSVRDb2RlTWFw
KFBhc3NPd25QdHI8Q29tcGFjdEpJVENvZGVNYXA+IGppdENvZGVNYXApCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT3Bjb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wY29kZS5oCShyZXZpc2lvbiAxMjcxNTgpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT3Bjb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTIy
NSw3ICsyMjUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgRk9SX0VBQ0hfT1BDT0RFX0lE
KFZFUklGWV9PUENPREVfSUQpOwogICAgICN1bmRlZiBWRVJJRllfT1BDT0RFX0lECiAKLSNpZiBF
TkFCTEUoQ09NUFVURURfR09UT19DTEFTU0lDX0lOVEVSUFJFVEVSKSB8fCBFTkFCTEUoTExJTlQp
CisjaWYgRU5BQkxFKENPTVBVVEVEX0dPVE9fT1BDT0RFUykKICAgICB0eXBlZGVmIHZvaWQqIE9w
Y29kZTsKICNlbHNlCiAgICAgdHlwZWRlZiBPcGNvZGVJRCBPcGNvZGU7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAJKHJldmlzaW9uIDEyNzE1OCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQ0LDYgKzQ0LDggQEAKICNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVk
ZSA8d3RmL0lubGluZUFTTS5oPgogCisjaWYgRU5BQkxFKEpJVCkKKwogI2lmIEVOQUJMRShERkdf
SklUKQogCiAjaWYgQ1BVKFg4Nl82NCkKQEAgLTEzODgsNyArMTM5MCw3IEBAIGV4dGVybiAiQyIg
dm9pZCBERkdfT1BFUkFUSU9OIHRyaWdnZXJSZW8KIH0gLy8gZXh0ZXJuICJDIgogfSB9IC8vIG5h
bWVzcGFjZSBKU0M6OkRGRwogCi0jZW5kaWYKKyNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKIAog
I2lmIENPTVBJTEVSKEdDQykKIApAQCAtMTQ1MCwzICsxNDUyLDQgQEAgZXh0ZXJuICJDIiBFbmNv
ZGVkSlNWYWx1ZSBIT1NUX0NBTExfUkVUVQogCiAjZW5kaWYgLy8gQ09NUElMRVIoR0NDKQogCisj
ZW5kaWYgLy8gRU5BQkxFKEpJVCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnBy
ZXRlci9BYnN0cmFjdFBDLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW50ZXJwcmV0ZXIvQWJzdHJhY3RQQy5jcHAJKHJldmlzaW9uIDEyNzE1OCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9BYnN0cmFjdFBDLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzYsNiArMzYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIEFic3RyYWN0UEM6OkFic3RyYWN0UEMo
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgVU5VU0VE
X1BBUkFNKGdsb2JhbERhdGEpOworICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICAKICNpZiBF
TkFCTEUoSklUKQogICAgIGlmIChnbG9iYWxEYXRhLmNhblVzZUpJVCgpKSB7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5oCShyZXZpc2lvbiAx
MjcxNTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEwMyw3ICsxMDMsNyBAQCBuYW1lc3BhY2UgSlNDICB7CiAgICAg
ICAgIENhbGxGcmFtZSYgb3BlcmF0b3I9KGNvbnN0IFJlZ2lzdGVyJiByKSB7ICpzdGF0aWNfY2Fz
dDxSZWdpc3Rlcio+KHRoaXMpID0gcjsgcmV0dXJuICp0aGlzOyB9CiAKICAgICAgICAgQ2FsbEZy
YW1lKiBjYWxsZXJGcmFtZSgpIGNvbnN0IHsgcmV0dXJuIHRoaXNbUmVnaXN0ZXJGaWxlOjpDYWxs
ZXJGcmFtZV0uY2FsbEZyYW1lKCk7IH0KLSNpZiBFTkFCTEUoSklUKQorI2lmIEVOQUJMRShKSVQp
IHx8IEVOQUJMRShMTElOVCkKICAgICAgICAgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5QQygpIGNv
bnN0IHsgcmV0dXJuIFJldHVybkFkZHJlc3NQdHIodGhpc1tSZWdpc3RlckZpbGU6OlJldHVyblBD
XS52UEMoKSk7IH0KICAgICAgICAgYm9vbCBoYXNSZXR1cm5QQygpIGNvbnN0IHsgcmV0dXJuICEh
dGhpc1tSZWdpc3RlckZpbGU6OlJldHVyblBDXS52UEMoKTsgfQogICAgICAgICB2b2lkIGNsZWFy
UmV0dXJuUEMoKSB7IHJlZ2lzdGVycygpW1JlZ2lzdGVyRmlsZTo6UmV0dXJuUENdID0gc3RhdGlj
X2Nhc3Q8SW5zdHJ1Y3Rpb24qPigwKTsgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
dGVycHJldGVyL0ludGVycHJldGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCShyZXZpc2lvbiAxMjcxNTgpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yNzgsNyArMjc4LDcgQEAgSW50ZXJwcmV0ZXI6OkludGVycHJldGVyKCkKIAog
SW50ZXJwcmV0ZXI6On5JbnRlcnByZXRlcigpCiB7Ci0jaWYgRU5BQkxFKExMSU5UKQorI2lmIEVO
QUJMRShMTElOVCkgJiYgRU5BQkxFKENPTVBVVEVEX0dPVE9fT1BDT0RFUykKICAgICBpZiAobV9j
bGFzc2ljRW5hYmxlZCkKICAgICAgICAgZGVsZXRlW10gbV9vcGNvZGVUYWJsZTsKICNlbmRpZgpA
QCAtMjkzLDE1ICsyOTMsMTYgQEAgdm9pZCBJbnRlcnByZXRlcjo6aW5pdGlhbGl6ZShib29sIGNh
blVzZQogI2Vycm9yICJCdWlsZGluZyBib3RoIExMSW50IGFuZCB0aGUgQ2xhc3NpYyBJbnRlcnBy
ZXRlciBpcyBub3Qgc3VwcG9ydGVkIGJlY2F1c2UgaXQgZG9lc24ndCBtYWtlIHNlbnNlLiIKICNl
bmRpZgogCisjaWYgRU5BQkxFKENPTVBVVEVEX0dPVE9fT1BDT0RFUykKICNpZiBFTkFCTEUoTExJ
TlQpCiAgICAgbV9vcGNvZGVUYWJsZSA9IExMSW50OjpvcGNvZGVNYXAoKTsKICAgICBmb3IgKGlu
dCBpID0gMDsgaSA8IG51bU9wY29kZUlEczsgKytpKQogICAgICAgICBtX29wY29kZUlEVGFibGUu
YWRkKG1fb3Bjb2RlVGFibGVbaV0sIHN0YXRpY19jYXN0PE9wY29kZUlEPihpKSk7CiAgICAgbV9j
bGFzc2ljRW5hYmxlZCA9IGZhbHNlOworCiAjZWxpZiBFTkFCTEUoQ09NUFVURURfR09UT19DTEFT
U0lDX0lOVEVSUFJFVEVSKQogICAgIGlmIChjYW5Vc2VKSVQpIHsKICAgICAgICAgLy8gSWYgdGhl
IEpJVCBpcyBwcmVzZW50LCBkb24ndCB1c2UganVtcCBkZXN0aW5hdGlvbnMgZm9yIG9wY29kZXMu
Ci0gICAgICAgIAogICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bU9wY29kZUlEczsgKytp
KSB7CiAgICAgICAgICAgICBPcGNvZGUgb3Bjb2RlID0gYml0d2lzZV9jYXN0PHZvaWQqPihzdGF0
aWNfY2FzdDx1aW50cHRyX3Q+KGkpKTsKICAgICAgICAgICAgIG1fb3Bjb2RlVGFibGVbaV0gPSBv
cGNvZGU7CkBAIC0zMTUsMTMgKzMxNiwxNiBAQCB2b2lkIEludGVycHJldGVyOjppbml0aWFsaXpl
KGJvb2wgY2FuVXNlCiAgICAgICAgIAogICAgICAgICBtX2NsYXNzaWNFbmFibGVkID0gdHJ1ZTsK
ICAgICB9Ci0jZWxzZQorI2VuZGlmIC8vIEVOQUJMRShDT01QVVRFRF9HT1RPX0NMQVNTSUNfSU5U
RVJQUkVURVIpCisKKyNlbHNlIC8vICFFTkFCTEUoQ09NUFVURURfR09UT19PUENPREVTKQogI2lm
IEVOQUJMRShDTEFTU0lDX0lOVEVSUFJFVEVSKQogICAgIG1fY2xhc3NpY0VuYWJsZWQgPSB0cnVl
OwogI2Vsc2UKICAgICBtX2NsYXNzaWNFbmFibGVkID0gZmFsc2U7CiAjZW5kaWYKLSNlbmRpZiAv
LyBFTkFCTEUoQ09NUFVURURfR09UT19DTEFTU0lDX0lOVEVSUFJFVEVSKQorI2VuZGlmIC8vICFF
TkFCTEUoQ09NUFVURURfR09UT19PUENPREVTKQorCiAjaWYgIUFTU0VSVF9ESVNBQkxFRAogICAg
IG1faW5pdGlhbGl6ZWQgPSB0cnVlOwogI2VuZGlmCkBAIC00MzIsNyArNDM2LDcgQEAgdm9pZCBJ
bnRlcnByZXRlcjo6ZHVtcFJlZ2lzdGVycyhDYWxsRnJhbQogCiBib29sIEludGVycHJldGVyOjpp
c09wY29kZShPcGNvZGUgb3Bjb2RlKQogewotI2lmIEVOQUJMRShDT01QVVRFRF9HT1RPX0NMQVNT
SUNfSU5URVJQUkVURVIpIHx8IEVOQUJMRShMTElOVCkKKyNpZiBFTkFCTEUoQ09NUFVURURfR09U
T19PUENPREVTKQogI2lmICFFTkFCTEUoTExJTlQpCiAgICAgaWYgKCFtX2NsYXNzaWNFbmFibGVk
KQogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8T3Bjb2RlSUQ+KGJpdHdpc2VfY2FzdDx1aW50
cHRyX3Q+KG9wY29kZSkpIDw9IG9wX2VuZDsKQEAgLTQ5Niw3ICs1MDAsNyBAQCBORVZFUl9JTkxJ
TkUgYm9vbCBJbnRlcnByZXRlcjo6dW53aW5kQ2FsCiAgICAgICAgIGJ5dGVjb2RlT2Zmc2V0ID0g
Y29kZUJsb2NrLT5ieXRlY29kZU9mZnNldChjYWxsZXJGcmFtZSwgY2FsbEZyYW1lLT5yZXR1cm5Q
QygpKTsKICAgICBlbHNlCiAgICAgICAgIGJ5dGVjb2RlT2Zmc2V0ID0gY29kZUJsb2NrLT5ieXRl
Y29kZU9mZnNldChjYWxsRnJhbWUtPnJldHVyblZQQygpKSAtIDE7Ci0jZWxpZiBFTkFCTEUoSklU
KQorI2VsaWYgRU5BQkxFKEpJVCkgfHwgRU5BQkxFKExMSU5UKQogICAgIGJ5dGVjb2RlT2Zmc2V0
ID0gY29kZUJsb2NrLT5ieXRlY29kZU9mZnNldChjYWxsZXJGcmFtZSwgY2FsbEZyYW1lLT5yZXR1
cm5QQygpKTsKICNlbHNlCiAgICAgYnl0ZWNvZGVPZmZzZXQgPSBjb2RlQmxvY2stPmJ5dGVjb2Rl
T2Zmc2V0KGNhbGxGcmFtZS0+cmV0dXJuVlBDKCkpIC0gMTsKQEAgLTU2OCw3ICs1NzIsNyBAQCBz
dGF0aWMgaW50IGdldExpbmVOdW1iZXJGb3JDYWxsRnJhbWUoSlNHCiAgICAgaWYgKCFnbG9iYWxE
YXRhLT5jYW5Vc2VKSVQoKSkKICAgICAgICAgcmV0dXJuIGNvZGVCbG9jay0+bGluZU51bWJlckZv
ckJ5dGVjb2RlT2Zmc2V0KGNhbGxGcmFtZS0+Ynl0ZWNvZGVPZmZzZXRGb3JOb25ERkdDb2RlKCkg
LSAxKTsKICNlbmRpZgotI2lmIEVOQUJMRShKSVQpCisjaWYgRU5BQkxFKEpJVCkgfHwgRU5BQkxF
KExMSU5UKQogI2lmIEVOQUJMRShERkdfSklUKQogICAgIGlmIChjb2RlQmxvY2stPmdldEpJVFR5
cGUoKSA9PSBKSVRDb2RlOjpERkdKSVQpCiAgICAgICAgIHJldHVybiBjb2RlQmxvY2stPmxpbmVO
dW1iZXJGb3JCeXRlY29kZU9mZnNldChjb2RlQmxvY2stPmNvZGVPcmlnaW4oY2FsbEZyYW1lLT5j
b2RlT3JpZ2luSW5kZXhGb3JERkcoKSkuYnl0ZWNvZGVJbmRleCk7CkBAIC01OTQsNyArNTk4LDcg
QEAgc3RhdGljIENhbGxGcmFtZSogZ2V0Q2FsbGVySW5mbyhKU0dsb2JhbAogICAgIAogICAgIENv
ZGVCbG9jayogY2FsbGVyQ29kZUJsb2NrID0gY2FsbGVyRnJhbWUtPmNvZGVCbG9jaygpOwogICAg
IAotI2lmIEVOQUJMRShKSVQpCisjaWYgRU5BQkxFKEpJVCkgfHwgRU5BQkxFKExMSU5UKQogICAg
IGlmICghY2FsbEZyYW1lLT5oYXNSZXR1cm5QQygpKQogICAgICAgICBjYWxsZnJhbWVJc0hvc3Qg
PSB0cnVlOwogI2VuZGlmCkBAIC02MTMsNyArNjE3LDcgQEAgc3RhdGljIENhbGxGcmFtZSogZ2V0
Q2FsbGVySW5mbyhKU0dsb2JhbAogICAgICAgICAgICAgcmV0dXJuIGNhbGxlckZyYW1lOwogICAg
ICAgICB9CiAjZW5kaWYKLSNpZiBFTkFCTEUoSklUKQorI2lmIEVOQUJMRShKSVQpIHx8IEVOQUJM
RShMTElOVCkKICNpZiBFTkFCTEUoREZHX0pJVCkKICAgICAgICAgaWYgKGNhbGxlckNvZGVCbG9j
ayAmJiBjYWxsZXJDb2RlQmxvY2stPmdldEpJVFR5cGUoKSA9PSBKSVRDb2RlOjpERkdKSVQpIHsK
ICAgICAgICAgICAgIHVuc2lnbmVkIGNvZGVPcmlnaW5JbmRleCA9IGNhbGxlckZyYW1lLT5jb2Rl
T3JpZ2luSW5kZXhGb3JERkcoKTsKQEAgLTYzMCw3ICs2MzQsNyBAQCBzdGF0aWMgQ2FsbEZyYW1l
KiBnZXRDYWxsZXJJbmZvKEpTR2xvYmFsCiAgICAgICAgICAgICByZXR1cm4gY2FsbGVyRnJhbWU7
CiAgICAgICAgIH0KICNlbmRpZgotI2lmIEVOQUJMRShKSVQpCisjaWYgRU5BQkxFKEpJVCkgfHwg
RU5BQkxFKExMSU5UKQogICAgICNpZiBFTkFCTEUoREZHX0pJVCkKICAgICAgICAgaWYgKGNhbGxG
cmFtZS0+aXNJbmxpbmVDYWxsRnJhbWUoKSkgewogICAgICAgICAgICAgSW5saW5lQ2FsbEZyYW1l
KiBpY2YgPSBjYWxsRnJhbWUtPmlubGluZUNhbGxGcmFtZSgpOwpAQCAtODQ0LDYgKzg0OCw5IEBA
IEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGUoUHJvZ3JhbUV4ZWMKICAgICBpZiAobV9yZWVu
dHJ5RGVwdGggPj0gTWF4U21hbGxUaHJlYWRSZWVudHJ5RGVwdGggJiYgbV9yZWVudHJ5RGVwdGgg
Pj0gY2FsbEZyYW1lLT5nbG9iYWxEYXRhKCkubWF4UmVlbnRyeURlcHRoKQogICAgICAgICByZXR1
cm4gY2hlY2tlZFJldHVybih0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUpKTsKIAor
ICAgIC8vIEZpcnN0IGNoZWNrIGlmIHRoZSAicHJvZ3JhbSIgaXMgYWN0dWFsbHkganVzdCBhIEpT
T04gb2JqZWN0LiBJZiBzbywKKyAgICAvLyB3ZSdsbCBoYW5kbGUgdGhlIEpTT04gb2JqZWN0IGhl
cmUuIEVsc2UsIHdlJ2xsIGhhbmRsZSByZWFsIEpTIGNvZGUKKyAgICAvLyBiZWxvdyBhdCBmYWls
ZWRKU09OUC4KICAgICBEeW5hbWljR2xvYmFsT2JqZWN0U2NvcGUgZ2xvYmFsT2JqZWN0U2NvcGUo
KnNjb3BlQ2hhaW4tPmdsb2JhbERhdGEsIHNjb3BlQ2hhaW4tPmdsb2JhbE9iamVjdC5nZXQoKSk7
CiAgICAgVmVjdG9yPEpTT05QRGF0YT4gSlNPTlBEYXRhOwogICAgIGJvb2wgcGFyc2VSZXN1bHQ7
CkBAIC05NDQsMTYgKzk1MSwyMiBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRlKFByb2dy
YW1FeGVjCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogZmFpbGVkSlNPTlA6CisgICAg
Ly8gSWYgd2UgZ2V0IGhlcmUsIHRoZW4gd2UgaGF2ZSBhbHJlYWR5IHByb3ZlbiB0aGF0IHRoZSBz
Y3JpcHQgaXMgbm90IGEgSlNPTgorICAgIC8vIG9iamVjdC4KKworICAgIC8vIENvbXBpbGUgc291
cmNlIHRvIGJ5dGVjb2RlIGlmIG5lY2Vzc2FyeToKICAgICBKU09iamVjdCogZXJyb3IgPSBwcm9n
cmFtLT5jb21waWxlKGNhbGxGcmFtZSwgc2NvcGVDaGFpbik7CiAgICAgaWYgKGVycm9yKQogICAg
ICAgICByZXR1cm4gY2hlY2tlZFJldHVybih0aHJvd0Vycm9yKGNhbGxGcmFtZSwgZXJyb3IpKTsK
ICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9ICZwcm9ncmFtLT5nZW5lcmF0ZWRCeXRlY29kZSgp
OwogCisgICAgLy8gUmVzZXJ2ZSBzdGFjayBzcGFjZSBmb3IgdGhpcyBpbnZvY2F0aW9uOgogICAg
IFJlZ2lzdGVyKiBvbGRFbmQgPSBtX3JlZ2lzdGVyRmlsZS5lbmQoKTsKICAgICBSZWdpc3Rlciog
bmV3RW5kID0gb2xkRW5kICsgY29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCkgKyBSZWdpc3RlckZp
bGU6OkNhbGxGcmFtZUhlYWRlclNpemUgKyBjb2RlQmxvY2stPm1fbnVtQ2FsbGVlUmVnaXN0ZXJz
OwogICAgIGlmICghbV9yZWdpc3RlckZpbGUuZ3JvdyhuZXdFbmQpKQogICAgICAgICByZXR1cm4g
Y2hlY2tlZFJldHVybih0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUpKTsKIAorICAg
IC8vIFB1c2ggdGhlIGNhbGwgZnJhbWUgZm9yIHRoaXMgaW52b2NhdGlvbjoKICAgICBDYWxsRnJh
bWUqIG5ld0NhbGxGcmFtZSA9IENhbGxGcmFtZTo6Y3JlYXRlKG9sZEVuZCArIGNvZGVCbG9jay0+
bnVtUGFyYW1ldGVycygpICsgUmVnaXN0ZXJGaWxlOjpDYWxsRnJhbWVIZWFkZXJTaXplKTsKICAg
ICBBU1NFUlQoY29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCkgPT0gMSk7IC8vIDEgcGFyYW1ldGVy
IGZvciAndGhpcycuCiAgICAgbmV3Q2FsbEZyYW1lLT5pbml0KGNvZGVCbG9jaywgMCwgc2NvcGVD
aGFpbiwgQ2FsbEZyYW1lOjpub0NhbGxlcigpLCBjb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKSwg
MCk7CkBAIC05NjMsNiArOTc2LDcgQEAgZmFpbGVkSlNPTlA6CiAgICAgaWYgKFByb2ZpbGVyKiBw
cm9maWxlciA9IGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLmVuYWJsZWRQcm9maWxlcigpKQogICAg
ICAgICBwcm9maWxlci0+d2lsbEV4ZWN1dGUoY2FsbEZyYW1lLCBwcm9ncmFtLT5zb3VyY2VVUkwo
KSwgcHJvZ3JhbS0+bGluZU5vKCkpOwogCisgICAgLy8gRXhlY3V0ZSB0aGUgY29kZToKICAgICBK
U1ZhbHVlIHJlc3VsdDsKICAgICB7CiAgICAgICAgIFNhbXBsaW5nVG9vbDo6Q2FsbFJlY29yZCBj
YWxsUmVjb3JkKG1fc2FtcGxlci5nZXQoKSk7CkBAIC05NzIsNyArOTg2LDcgQEAgZmFpbGVkSlNP
TlA6CiAgICAgICAgIGlmICghY2xhc3NpY0VuYWJsZWQoKSkKICAgICAgICAgICAgIHJlc3VsdCA9
IHByb2dyYW0tPmdlbmVyYXRlZEpJVENvZGUoKS5leGVjdXRlKCZtX3JlZ2lzdGVyRmlsZSwgbmV3
Q2FsbEZyYW1lLCBzY29wZUNoYWluLT5nbG9iYWxEYXRhKTsKICAgICAgICAgZWxzZQotI2VuZGlm
CisjZW5kaWYgLy8gRU5BQkxFKEpJVCkKICAgICAgICAgICAgIHJlc3VsdCA9IHByaXZhdGVFeGVj
dXRlKE5vcm1hbCwgJm1fcmVnaXN0ZXJGaWxlLCBuZXdDYWxsRnJhbWUpOwogCiAgICAgICAgIG1f
cmVlbnRyeURlcHRoLS07CkBAIC0xMDQ0LDcgKzEwNTgsNyBAQCBKU1ZhbHVlIEludGVycHJldGVy
OjpleGVjdXRlQ2FsbChDYWxsRnJhCiAgICAgICAgICAgICBpZiAoIWNsYXNzaWNFbmFibGVkKCkp
CiAgICAgICAgICAgICAgICAgcmVzdWx0ID0gY2FsbERhdGEuanMuZnVuY3Rpb25FeGVjdXRhYmxl
LT5nZW5lcmF0ZWRKSVRDb2RlRm9yQ2FsbCgpLmV4ZWN1dGUoJm1fcmVnaXN0ZXJGaWxlLCBuZXdD
YWxsRnJhbWUsIGNhbGxEYXRhU2NvcGVDaGFpbi0+Z2xvYmFsRGF0YSk7CiAgICAgICAgICAgICBl
bHNlCi0jZW5kaWYKKyNlbmRpZiAvLyBFTkFCTEUoSklUKQogICAgICAgICAgICAgICAgIHJlc3Vs
dCA9IHByaXZhdGVFeGVjdXRlKE5vcm1hbCwgJm1fcmVnaXN0ZXJGaWxlLCBuZXdDYWxsRnJhbWUp
OwogICAgICAgICAgICAgbV9yZWVudHJ5RGVwdGgtLTsKICAgICAgICAgfQpAQCAtMTEzOCw3ICsx
MTUyLDcgQEAgSlNPYmplY3QqIEludGVycHJldGVyOjpleGVjdXRlQ29uc3RydWN0KAogICAgICAg
ICAgICAgaWYgKCFjbGFzc2ljRW5hYmxlZCgpKQogICAgICAgICAgICAgICAgIHJlc3VsdCA9IGNv
bnN0cnVjdERhdGEuanMuZnVuY3Rpb25FeGVjdXRhYmxlLT5nZW5lcmF0ZWRKSVRDb2RlRm9yQ29u
c3RydWN0KCkuZXhlY3V0ZSgmbV9yZWdpc3RlckZpbGUsIG5ld0NhbGxGcmFtZSwgY29uc3RydWN0
RGF0YVNjb3BlQ2hhaW4tPmdsb2JhbERhdGEpOwogICAgICAgICAgICAgZWxzZQotI2VuZGlmCisj
ZW5kaWYgLy8gRU5BQkxFKEpJVCkKICAgICAgICAgICAgICAgICByZXN1bHQgPSBwcml2YXRlRXhl
Y3V0ZShOb3JtYWwsICZtX3JlZ2lzdGVyRmlsZSwgbmV3Q2FsbEZyYW1lKTsKICAgICAgICAgICAg
IG1fcmVlbnRyeURlcHRoLS07CiAgICAgICAgIH0KQEAgLTEyNDUsNyArMTI1OSw3IEBAIEpTVmFs
dWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGUoQ2FsbEZyYW1lQ2wKICNpZiBFTkFCTEUoQ0xBU1NJQ19J
TlRFUlBSRVRFUikKICAgICAgICAgZWxzZQogI2VuZGlmCi0jZW5kaWYKKyNlbmRpZiAvLyBFTkFC
TEUoSklUKQogI2lmIEVOQUJMRShDTEFTU0lDX0lOVEVSUFJFVEVSKQogICAgICAgICAgICAgcmVz
dWx0ID0gcHJpdmF0ZUV4ZWN1dGUoTm9ybWFsLCAmbV9yZWdpc3RlckZpbGUsIGNsb3N1cmUubmV3
Q2FsbEZyYW1lKTsKICNlbmRpZgpAQCAtMTM1MCw3ICsxMzY0LDcgQEAgSlNWYWx1ZSBJbnRlcnBy
ZXRlcjo6ZXhlY3V0ZShFdmFsRXhlY3V0YQogI2lmIEVOQUJMRShDTEFTU0lDX0lOVEVSUFJFVEVS
KQogICAgICAgICBlbHNlCiAjZW5kaWYKLSNlbmRpZgorI2VuZGlmIC8vIEVOQUJMRShKSVQpCiAj
aWYgRU5BQkxFKENMQVNTSUNfSU5URVJQUkVURVIpCiAgICAgICAgICAgICByZXN1bHQgPSBwcml2
YXRlRXhlY3V0ZShOb3JtYWwsICZtX3JlZ2lzdGVyRmlsZSwgbmV3Q2FsbEZyYW1lKTsKICNlbmRp
ZgpAQCAtMTcxNCw5ICsxNzI4LDkgQEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6cHJpdmF0ZUV4ZWN1
dGUoRXhlYwogICAgICAgICAgICAgVVBEQVRFX0JZVEVDT0RFX09GRlNFVCgpOwogI2Vsc2UKICAg
ICAjZGVmaW5lIERFRklORV9PUENPREUob3Bjb2RlKSBvcGNvZGU6IFVQREFURV9CWVRFQ09ERV9P
RkZTRVQoKTsKLSNlbmRpZgorI2VuZGlmIC8vICFFTkFCTEUoT1BDT0RFX1NUQVRTKQogICAgIE5F
WFRfSU5TVFJVQ1RJT04oKTsKLSNlbHNlCisjZWxzZSAvLyAhRU5BQkxFKENPTVBVVEVEX0dPVE9f
Q0xBU1NJQ19JTlRFUlBSRVRFUikKICAgICAjZGVmaW5lIE5FWFRfSU5TVFJVQ1RJT04oKSBTQU1Q
TEUoY29kZUJsb2NrLCB2UEMpOyBnb3RvIGludGVycHJldGVyTG9vcFN0YXJ0CiAjaWYgRU5BQkxF
KE9QQ09ERV9TVEFUUykKICAgICAjZGVmaW5lIERFRklORV9PUENPREUob3Bjb2RlKSBcCkBAIC0x
NzI5LDcgKzE3NDMsNyBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpwcml2YXRlRXhlY3V0ZShFeGVj
CiAgICAgd2hpbGUgKDEpIHsgLy8gaXRlcmF0b3IgbG9vcCBiZWdpbnMKICAgICBpbnRlcnByZXRl
ckxvb3BTdGFydDo7CiAgICAgc3dpdGNoICh2UEMtPnUub3Bjb2RlKQotI2VuZGlmCisjZW5kaWYg
Ly8gIUVOQUJMRShDT01QVVRFRF9HT1RPX0NMQVNTSUNfSU5URVJQUkVURVIpCiAgICAgewogICAg
IERFRklORV9PUENPREUob3BfbmV3X29iamVjdCkgewogICAgICAgICAvKiBuZXdfb2JqZWN0IGRz
dChyKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVy
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVy
cHJldGVyLmgJKHJldmlzaW9uIDEyNzE1OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRl
cnByZXRlci9JbnRlcnByZXRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xOTQsNyArMTk0LDcgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIE9wY29kZSBnZXRPcGNvZGUoT3Bjb2RlSUQgaWQpCiAg
ICAgICAgIHsKICAgICAgICAgICAgIEFTU0VSVChtX2luaXRpYWxpemVkKTsKLSNpZiBFTkFCTEUo
Q09NUFVURURfR09UT19DTEFTU0lDX0lOVEVSUFJFVEVSKSB8fCBFTkFCTEUoTExJTlQpCisjaWYg
RU5BQkxFKENPTVBVVEVEX0dPVE9fT1BDT0RFUykKICAgICAgICAgICAgIHJldHVybiBtX29wY29k
ZVRhYmxlW2lkXTsKICNlbHNlCiAgICAgICAgICAgICByZXR1cm4gaWQ7CkBAIC0yMDQsNiArMjA0
LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIE9wY29kZUlEIGdldE9wY29kZUlEKE9wY29k
ZSBvcGNvZGUpCiAgICAgICAgIHsKICAgICAgICAgICAgIEFTU0VSVChtX2luaXRpYWxpemVkKTsK
KyNpZiBFTkFCTEUoQ09NUFVURURfR09UT19PUENPREVTKQogI2lmIEVOQUJMRShMTElOVCkKICAg
ICAgICAgICAgIEFTU0VSVChpc09wY29kZShvcGNvZGUpKTsKICAgICAgICAgICAgIHJldHVybiBt
X29wY29kZUlEVGFibGUuZ2V0KG9wY29kZSk7CkBAIC0yMTMsOSArMjE0LDEwIEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxPcGNvZGVJRD4oYml0
d2lzZV9jYXN0PHVpbnRwdHJfdD4ob3Bjb2RlKSk7CiAKICAgICAgICAgICAgIHJldHVybiBtX29w
Y29kZUlEVGFibGUuZ2V0KG9wY29kZSk7Ci0jZWxzZQorI2VuZGlmIC8vIEVOQUJMRShDT01QVVRF
RF9HT1RPX0NMQVNTSUNfSU5URVJQUkVURVIpCisjZWxzZSAvLyAhRU5BQkxFKENPTVBVVEVEX0dP
VE9fT1BDT0RFUykKICAgICAgICAgICAgIHJldHVybiBvcGNvZGU7Ci0jZW5kaWYKKyNlbmRpZiAv
LyAhRU5BQkxFKENPTVBVVEVEX0dPVE9fT1BDT0RFUykKICAgICAgICAgfQogICAgICAgICAKICAg
ICAgICAgYm9vbCBjbGFzc2ljRW5hYmxlZCgpCkBAIC0yODcsNiArMjg5LDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAKICAgICAgICAgUmVnaXN0ZXJGaWxlIG1fcmVnaXN0ZXJGaWxlOwogICAgICAgICAK
KyNpZiBFTkFCTEUoQ09NUFVURURfR09UT19PUENPREVTKQogI2lmIEVOQUJMRShMTElOVCkKICAg
ICAgICAgT3Bjb2RlKiBtX29wY29kZVRhYmxlOyAvLyBNYXBzIE9wY29kZUlEID0+IE9wY29kZSBm
b3IgY29tcGlsaW5nCiAgICAgICAgIEhhc2hNYXA8T3Bjb2RlLCBPcGNvZGVJRD4gbV9vcGNvZGVJ
RFRhYmxlOyAvLyBNYXBzIE9wY29kZSA9PiBPcGNvZGVJRCBmb3IgZGVjb21waWxpbmcKQEAgLTI5
NCw2ICsyOTcsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgT3Bjb2RlIG1fb3Bjb2RlVGFi
bGVbbnVtT3Bjb2RlSURzXTsgLy8gTWFwcyBPcGNvZGVJRCA9PiBPcGNvZGUgZm9yIGNvbXBpbGlu
ZwogICAgICAgICBIYXNoTWFwPE9wY29kZSwgT3Bjb2RlSUQ+IG1fb3Bjb2RlSURUYWJsZTsgLy8g
TWFwcyBPcGNvZGUgPT4gT3Bjb2RlSUQgZm9yIGRlY29tcGlsaW5nCiAjZW5kaWYKKyNlbmRpZiAv
LyBFTkFCTEUoQ09NUFVURURfR09UT19PUENPREVTKQogCiAjaWYgIUFTU0VSVF9ESVNBQkxFRAog
ICAgICAgICBib29sIG1faW5pdGlhbGl6ZWQ7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0hvc3RDYWxsUmV0dXJuVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0hvc3RDYWxsUmV0dXJuVmFsdWUuaAkocmV2aXNpb24gMTI3MTU4KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Ib3N0Q2FsbFJldHVyblZhbHVlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTMzLDcgKzMzLDcgQEAKIC8vIFVuZm9ydHVuYXRlbHkgdGhpcyBvbmx5IHdvcmtzIG9u
IEdDQy1saWtlIGNvbXBpbGVycy4gQW5kIGl0J3MgY3VycmVudGx5IG9ubHkgdXNlZAogLy8gYnkg
TExJbnQgYW5kIERGRywgd2hpY2ggYWxzbyBhcmUgcmVzdHJpY3RlZCB0byBHQ0MtbGlrZSBjb21w
aWxlcnMuIFdlIHNob3VsZAogLy8gcHJvYmFibHkgZml4IHRoYXQgYXQgc29tZSBwb2ludC4KLSNp
ZiBDT01QSUxFUihHQ0MpCisjaWYgQ09NUElMRVIoR0NDKSAmJiBFTkFCTEUoSklUKQogCiAjaWYg
Q0FMTElOR19DT05WRU5USU9OX0lTX1NURENBTEwKICNkZWZpbmUgSE9TVF9DQUxMX1JFVFVSTl9W
QUxVRV9PUFRJT04gQ0RFQ0wKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ29k
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ29kZS5oCShy
ZXZpc2lvbiAxMjcxNTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGUuaAko
d29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQAogI2lmbmRlZiBKSVRDb2RlX2gKICNkZWZp
bmUgSklUQ29kZV9oCiAKLSNpZiBFTkFCTEUoSklUKQorI2lmIEVOQUJMRShKSVQpIHx8IEVOQUJM
RShMTElOVCkKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJKU1ZhbHVlLmgiCiAj
aW5jbHVkZSAiRGlzYXNzZW1ibGVyLmgiCkBAIC00Miw3ICs0Miw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogI2VuZGlmCiAgICAgCiAgICAgY2xhc3MgSklUQ29kZSB7Ci0jaWYgRU5BQkxFKEpJVCkKKyNp
ZiBFTkFCTEUoSklUKSB8fCBFTkFCTEUoTExJTlQpCiAgICAgICAgIHR5cGVkZWYgTWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmIENvZGVSZWY7CiAgICAgICAgIHR5cGVkZWYgTWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyIENvZGVQdHI7CiAjZWxzZQpAQCAtNzcsNyArNzcsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgICAgIHJldHVybiBqaXRUeXBlID09IEludGVycHJldGVyVGh1bmsgfHwgaml0VHlwZSA9
PSBCYXNlbGluZUpJVDsKICAgICAgICAgfQogICAgICAgICAKLSNpZiBFTkFCTEUoSklUKQorI2lm
IEVOQUJMRShKSVQpIHx8IEVOQUJMRShMTElOVCkKICAgICAgICAgSklUQ29kZSgpCiAgICAgICAg
ICAgICA6IG1faml0VHlwZShOb25lKQogICAgICAgICB7CkBAIC0xMjcsMTIgKzEyNywxNCBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
cmVzdWx0KTsKICAgICAgICAgfQogCisjaWYgRU5BQkxFKEpJVCkKICAgICAgICAgLy8gRXhlY3V0
ZSB0aGUgY29kZSEKICAgICAgICAgaW5saW5lIEpTVmFsdWUgZXhlY3V0ZShSZWdpc3RlckZpbGUq
IHJlZ2lzdGVyRmlsZSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTR2xvYmFsRGF0YSogZ2xvYmFs
RGF0YSkKICAgICAgICAgewogICAgICAgICAgICAgSlNWYWx1ZSByZXN1bHQgPSBKU1ZhbHVlOjpk
ZWNvZGUoY3RpVHJhbXBvbGluZShtX3JlZi5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSwgcmVn
aXN0ZXJGaWxlLCBjYWxsRnJhbWUsIDAsIDAsIGdsb2JhbERhdGEpKTsKICAgICAgICAgICAgIHJl
dHVybiBnbG9iYWxEYXRhLT5leGNlcHRpb24gPyBqc051bGwoKSA6IHJlc3VsdDsKICAgICAgICAg
fQorI2VuZGlmCiAKICAgICAgICAgdm9pZCogc3RhcnQoKSBjb25zdAogICAgICAgICB7CkBAIC0x
ODIsNyArMTg0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgQ29kZVJlZiBtX3JlZjsK
ICAgICAgICAgSklUVHlwZSBtX2ppdFR5cGU7Ci0jZW5kaWYgLy8gRU5BQkxFKEpJVCkKKyNlbmRp
ZiAvLyBFTkFCTEUoSklUKSB8fCBFTkFCTEUoTExJTlQpCiAgICAgfTsKIAogfTsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURXhjZXB0aW9ucy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRFeGNlcHRpb25zLmNwcAkocmV2aXNpb24gMTI3
MTU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRFeGNlcHRpb25zLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQAogI2luY2x1ZGUgIkpTR2xvYmFsRGF0YS5oIgog
I2luY2x1ZGUgIkpTVmFsdWUuaCIKIAotI2lmIEVOQUJMRShKSVQpCisjaWYgRU5BQkxFKEpJVCkg
fHwgRU5BQkxFKExMSU5UKQogCiBuYW1lc3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRFeGNlcHRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRFeGNlcHRpb25zLmgJKHJldmlzaW9uIDEyNzE1OCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURXhjZXB0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
OSw3ICsyOSw3IEBACiAjaW5jbHVkZSAiSlNWYWx1ZS5oIgogI2luY2x1ZGUgIk1hY3JvQXNzZW1i
bGVyQ29kZVJlZi5oIgogCi0jaWYgRU5BQkxFKEFTU0VNQkxFUikKKyNpZiBFTkFCTEUoSklUKSB8
fCBFTkFCTEUoTExJTlQpCiAKIG5hbWVzcGFjZSBKU0MgewogCkBAIC01MCw3ICs1MCw3IEBAIEV4
Y2VwdGlvbkhhbmRsZXIgaml0VGhyb3coSlNHbG9iYWxEYXRhKiwKIAogfSAvLyBuYW1lc3BhY2Ug
SlNDCiAKLSNlbmRpZgorI2VuZGlmIC8vIEVOQUJMRShKSVQpIHx8IEVOQUJMRShMTElOVCkKIAog
I2VuZGlmIC8vIEpJVEV4Y2VwdGlvbnNfaAogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pTSW50ZXJmYWNlSklULmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KU0ludGVyZmFjZUpJVC5oCShyZXZpc2lvbiAxMjcxNTgpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pTSW50ZXJmYWNlSklULmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2
LDggQEAKICNpbmNsdWRlIDx3dGYvQWx3YXlzSW5saW5lLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgogCisjaWYgRU5BQkxFKEpJVCkKKwogbmFtZXNwYWNlIEpTQyB7CiAgICAgY2xhc3MgSlNJ
bnRlcmZhY2VKSVQgOiBwdWJsaWMgTWFjcm9Bc3NlbWJsZXIgewogICAgIHB1YmxpYzoKQEAgLTMz
Myw2ICszMzUsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgcmV0dXJuIEFkZHJlc3MoYmFz
ZSwgKHN0YXRpY19jYXN0PHVuc2lnbmVkPih2aXJ0dWFsUmVnaXN0ZXJJbmRleCkgKiBzaXplb2Yo
UmVnaXN0ZXIpKSk7CiAgICAgfQogCi19Cit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8v
IEVOQUJMRShKSVQpCiAKICNlbmRpZiAvLyBKU0ludGVyZmFjZUpJVF9oCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5oCShyZXZpc2lvbiAxMjcxNTgpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTcx
LDcgKzcxLDcgQEAgaW5saW5lIE9wY29kZSogb3Bjb2RlTWFwKCkKIAogaW5saW5lIE9wY29kZSBn
ZXRPcGNvZGUoT3Bjb2RlSUQgaWQpCiB7Ci0jaWYgSEFWRShDT01QVVRFRF9HT1RPKQorI2lmIEVO
QUJMRShDT01QVVRFRF9HT1RPX09QQ09ERVMpCiAgICAgcmV0dXJuIERhdGE6OnNfb3Bjb2RlTWFw
W2lkXTsKICNlbHNlCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PE9wY29kZT4oaWQpOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RW50cnlwb2ludHMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludEVudHJ5cG9pbnRzLmNwcAko
cmV2aXNpb24gMTI3MTU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RW50
cnlwb2ludHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Miw2ICs1Miw3IEBAIHZvaWQgZ2V0RnVu
Y3Rpb25FbnRyeXBvaW50KEpTR2xvYmFsRGF0YSYKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICAKKyNpZiBFTkFCTEUoSklUKQogICAgIGlmIChraW5kID09IENvZGVGb3JDYWxsKSB7CiAgICAg
ICAgIGppdENvZGUgPSBKSVRDb2RlKGdsb2JhbERhdGEuZ2V0Q1RJU3R1YihmdW5jdGlvbkZvckNh
bGxFbnRyeVRodW5rR2VuZXJhdG9yKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuayk7CiAgICAg
ICAgIGFyaXR5Q2hlY2sgPSBnbG9iYWxEYXRhLmdldENUSVN0dWIoZnVuY3Rpb25Gb3JDYWxsQXJp
dHlDaGVja1RodW5rR2VuZXJhdG9yKS5jb2RlKCk7CkBAIC02MSw2ICs2Miw3IEBAIHZvaWQgZ2V0
RnVuY3Rpb25FbnRyeXBvaW50KEpTR2xvYmFsRGF0YSYKICAgICBBU1NFUlQoa2luZCA9PSBDb2Rl
Rm9yQ29uc3RydWN0KTsKICAgICBqaXRDb2RlID0gSklUQ29kZShnbG9iYWxEYXRhLmdldENUSVN0
dWIoZnVuY3Rpb25Gb3JDb25zdHJ1Y3RFbnRyeVRodW5rR2VuZXJhdG9yKSwgSklUQ29kZTo6SW50
ZXJwcmV0ZXJUaHVuayk7CiAgICAgYXJpdHlDaGVjayA9IGdsb2JhbERhdGEuZ2V0Q1RJU3R1Yihm
dW5jdGlvbkZvckNvbnN0cnVjdEFyaXR5Q2hlY2tUaHVua0dlbmVyYXRvcikuY29kZSgpOworI2Vu
ZGlmIC8vIEVOQUJMRShKSVQpCiB9CiAKIHZvaWQgZ2V0RXZhbEVudHJ5cG9pbnQoSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBKSVRDb2RlJiBqaXRDb2RlKQpAQCAtNjksOCArNzEsOSBAQCB2b2lk
IGdldEV2YWxFbnRyeXBvaW50KEpTR2xvYmFsRGF0YSYgZ2xvCiAgICAgICAgIGppdENvZGUgPSBK
SVRDb2RlKE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlTExJbnRDb2RlUmVmKGxsaW50X2V2
YWxfcHJvbG9ndWUpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KLSAgICAKKyNpZiBFTkFCTEUoSklUKSAgICAKICAgICBqaXRDb2RlID0gSklUQ29k
ZShnbG9iYWxEYXRhLmdldENUSVN0dWIoZXZhbEVudHJ5VGh1bmtHZW5lcmF0b3IpLCBKSVRDb2Rl
OjpJbnRlcnByZXRlclRodW5rKTsKKyNlbmRpZgogfQogCiB2b2lkIGdldFByb2dyYW1FbnRyeXBv
aW50KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSklUQ29kZSYgaml0Q29kZSkKQEAgLTc5LDgg
KzgyLDkgQEAgdm9pZCBnZXRQcm9ncmFtRW50cnlwb2ludChKU0dsb2JhbERhdGEmIAogICAgICAg
ICBqaXRDb2RlID0gSklUQ29kZShNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZUxMSW50Q29k
ZVJlZihsbGludF9wcm9ncmFtX3Byb2xvZ3VlKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuayk7
CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgCisjaWYgRU5BQkxFKEpJVCkKICAgICBqaXRD
b2RlID0gSklUQ29kZShnbG9iYWxEYXRhLmdldENUSVN0dWIocHJvZ3JhbUVudHJ5VGh1bmtHZW5l
cmF0b3IpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKTsKKyNlbmRpZgogfQogCiB9IH0gLy8g
bmFtZXNwYWNlIEpTQzo6TExJbnQKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
TEludE9mZnNldHNFeHRyYWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9MTEludE9mZnNldHNFeHRyYWN0b3IuY3BwCShyZXZpc2lvbiAxMjcxNTgpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRPZmZzZXRzRXh0cmFjdG9yLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNjIsNyArNjIsNyBAQCBwdWJsaWM6CiAKIGNvbnN0IHVuc2lnbmVk
KiBMTEludE9mZnNldHNFeHRyYWN0b3I6OmR1bW15KCkKIHsKLSNpZiBFTkFCTEUoSklUKQorI2lm
IEVOQUJMRShMTElOVCkKIC8vIFRoaXMgaXMgYSBmaWxlIGdlbmVyYXRlZCBieSBvZmZsaW5lYXNt
L2dlbmVyYXRlX29mZnNldHNfZXh0cmFjdG9yLnJiLCBhbmQgY29udGFpbnMgY29kZQogLy8gdG8g
Y3JlYXRlIGEgdGFibGUgb2Ygb2Zmc2V0cywgc2l6ZXMsIGFuZCBhIGhlYWRlciBpZGVudGlmeWlu
ZyB3aGF0IGNvbWJpbmF0aW9uIG9mCiAvLyBQbGF0Zm9ybS5oIG1hY3JvcyB3ZSBoYXZlIHNldC4g
V2UgaW5jbHVkZSBpdCBpbnNpZGUgb2YgYSBtZXRob2Qgb24gTExJbnRPZmZzZXRzRXh0cmFjdG9y
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5j
cHAJKHJldmlzaW9uIDEyNzE1OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTElu
dFNsb3dQYXRocy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1Niw2ICsyNTYsNyBAQCBMTElOVF9T
TE9XX1BBVEhfREVDTChzcGVjaWFsX3RyYWNlKQogICAgIExMSU5UX0VORF9JTVBMKCk7CiB9CiAK
KyNpZiBFTkFCTEUoSklUKQogaW5saW5lIGJvb2wgc2hvdWxkSklUKEV4ZWNTdGF0ZSogZXhlYykK
IHsKICAgICAvLyBZb3UgY2FuIG1vZGlmeSB0aGlzIHRvIHR1cm4gb2ZmIEpJVHRpbmcgd2l0aG91
dCByZWJ1aWxkaW5nIHRoZSB3b3JsZC4KQEAgLTM5MSw2ICszOTIsNyBAQCBMTElOVF9TTE9XX1BB
VEhfREVDTChyZXBsYWNlKQogICAgICAgICBjb2RlQmxvY2stPmRvbnRKSVRBbnl0aW1lU29vbigp
OwogICAgIExMSU5UX0VORF9JTVBMKCk7CiB9CisjZW5kaWYgLy8gRU5BQkxFKEpJVCkKIAogTExJ
TlRfU0xPV19QQVRIX0RFQ0wocmVnaXN0ZXJfZmlsZV9jaGVjaykKIHsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmNwcAkocmV2aXNpb24gMTI3
MTU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzc1LDEyICszNzUsMTMgQEAgTmF0aXZlRXhlY3V0YWJsZSogSlNH
bG9iYWxEYXRhOjpnZXRIb3N0RgogICAgIEFTU0VSVChjYW5Vc2VKSVQoKSk7CiAgICAgcmV0dXJu
IGppdFN0dWJzLT5ob3N0RnVuY3Rpb25TdHViKHRoaXMsIGZ1bmN0aW9uLCBpbnRyaW5zaWMgIT0g
Tm9JbnRyaW5zaWMgPyB0aHVua0dlbmVyYXRvckZvckludHJpbnNpYyhpbnRyaW5zaWMpIDogMCwg
aW50cmluc2ljKTsKIH0KLSNlbHNlCisKKyNlbHNlIC8vICFFTkFCTEUoSklUKQogTmF0aXZlRXhl
Y3V0YWJsZSogSlNHbG9iYWxEYXRhOjpnZXRIb3N0RnVuY3Rpb24oTmF0aXZlRnVuY3Rpb24gZnVu
Y3Rpb24sIE5hdGl2ZUZ1bmN0aW9uIGNvbnN0cnVjdG9yKQogewogICAgIHJldHVybiBOYXRpdmVF
eGVjdXRhYmxlOjpjcmVhdGUoKnRoaXMsIGZ1bmN0aW9uLCBjb25zdHJ1Y3Rvcik7CiB9Ci0jZW5k
aWYKKyNlbmRpZiAvLyAhRU5BQkxFKEpJVCkKIAogSlNHbG9iYWxEYXRhOjpDbGllbnREYXRhOjp+
Q2xpZW50RGF0YSgpCiB7CkluZGV4OiBTb3VyY2UvV1RGL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV1RGL0NoYW5nZUxvZwkocmV2aXNpb24gMTI3MTU5KQorKysgU291cmNlL1dURi9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAxMi0wOC0zMCAgTWFy
ayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuZGVyIHVudG8gI2lmZGVm
J3MgdGhhdCB3aGljaCBiZWxvbmcgdG8gdGhlbS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk1NDgyLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6IEFkZGVkIEVOQUJMRShDT01Q
VVRFRF9HT1RPX09QQ09ERVMpLgorCiAyMDEyLTA4LTMwICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBh
cm9nYUB3ZWJraXQub3JnPgogCiAgICAgICAgIEJ1aWxkIGZpeCBmb3IgQ09NUElMRVIoTVNWQykg
JiYgIUNQVShYODYpIGFmdGVyIHIxMjcwMDEuCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgJKHJldmlzaW9uIDEy
NzE1OCkKKysrIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgJKHdvcmtpbmcgY29weSkKQEAgLTk3
OCw2ICs5NzgsMTAgQEAKICNkZWZpbmUgRU5BQkxFX0NPTVBVVEVEX0dPVE9fQ0xBU1NJQ19JTlRF
UlBSRVRFUiAxCiAjZW5kaWYKIAorI2lmIChIQVZFKENPTVBVVEVEX0dPVE8pICYmIEVOQUJMRShM
TElOVCkpIHx8IEVOQUJMRShDT01QVVRFRF9HT1RPX0NMQVNTSUNfSU5URVJQUkVURVIpCisjZGVm
aW5lIEVOQUJMRV9DT01QVVRFRF9HT1RPX09QQ09ERVMgMQorI2VuZGlmCisKIC8qIFJlZ3VsYXIg
RXhwcmVzc2lvbiBUcmFjaW5nIC0gU2V0IHRvIDEgdG8gdHJhY2UgUmVnRXhwJ3MgaW4ganNjLiAg
UmVzdWx0cyBkdW1wZWQgYXQgZXhpdCAqLwogI2RlZmluZSBFTkFCTEVfUkVHRVhQX1RSQUNJTkcg
MAogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>