<?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>183387</bug_id>
          
          <creation_ts>2018-03-06 16:18:05 -0800</creation_ts>
          <short_desc>Prepare LLInt code to support pointer profiling.</short_desc>
          <delta_ts>2018-03-09 13:35:58 -0800</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>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>183492</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1404199</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-03-06 16:18:05 -0800</bug_when>
    <thetext>Patch coming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404200</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-03-06 16:18:44 -0800</bug_when>
    <thetext>&lt;rdar://problem/38199678&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404256</commentid>
    <comment_count>2</comment_count>
      <attachid>335170</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-03-06 20:14:14 -0800</bug_when>
    <thetext>Created attachment 335170
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404269</commentid>
    <comment_count>3</comment_count>
      <attachid>335170</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2018-03-06 21:39:57 -0800</bug_when>
    <thetext>Comment on attachment 335170
proposed patch.

View in context: https://bugs.webkit.org/attachment.cgi?id=335170&amp;action=review

r=me

&gt; Source/JavaScriptCore/llint/LLIntData.cpp:90
&gt; +            ExceptionHandlerPtrTag, // handleUncaughtException

This seems brittle. Could we auto-gen this or something like xmacros?

&gt; Source/JavaScriptCore/offlineasm/ast.rb:932
&gt; +        when &quot;tagReturnAddress&quot;, &quot;untagReturnAddress&quot;

FIXME?

&gt; Source/JavaScriptCore/runtime/PtrTag.h:73
&gt; +    inline constexpr T removeCodePtrTag(PtrType ptr) { return bitwise_cast&lt;T&gt;(ptr); }

Weird indent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404270</commentid>
    <comment_count>4</comment_count>
      <attachid>335170</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-03-06 21:55:12 -0800</bug_when>
    <thetext>Comment on attachment 335170
proposed patch.

View in context: https://bugs.webkit.org/attachment.cgi?id=335170&amp;action=review

Thanks for the review.  Responses below.

&gt;&gt; Source/JavaScriptCore/llint/LLIntData.cpp:90
&gt;&gt; +            ExceptionHandlerPtrTag, // handleUncaughtException
&gt; 
&gt; This seems brittle. Could we auto-gen this or something like xmacros?

The 2 static asserts below makes this not brittle.  They will catch the case where new opcodes get added.  We can revisit this later if we want to do something fancier for this.

&gt;&gt; Source/JavaScriptCore/offlineasm/ast.rb:932
&gt;&gt; +        when &quot;tagReturnAddress&quot;, &quot;untagReturnAddress&quot;
&gt; 
&gt; FIXME?

This is the intended behavior i.e. these are no-ops by default.  So, I&apos;ll leave them as is.

&gt;&gt; Source/JavaScriptCore/runtime/PtrTag.h:73
&gt;&gt; +    inline constexpr T removeCodePtrTag(PtrType ptr) { return bitwise_cast&lt;T&gt;(ptr); }
&gt; 
&gt; Weird indent.

Oops.  Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404275</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-03-06 22:45:31 -0800</bug_when>
    <thetext>Landed in r229354: &lt;http://trac.webkit.org/r229354&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1405019</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-03-08 17:59:46 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 183492</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1405294</commentid>
    <comment_count>7</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-03-09 13:35:58 -0800</bug_when>
    <thetext>Re-landed in r229481: &lt;http://trac.webkit.org/r229481&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335170</attachid>
            <date>2018-03-06 20:14:14 -0800</date>
            <delta_ts>2018-03-06 21:39:57 -0800</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-183387.patch</filename>
            <type>text/plain</type>
            <size>47870</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjI5MzUyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU4IEBA
CisyMDE4LTAzLTA2ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBQ
cmVwYXJlIExMSW50IGNvZGUgdG8gc3VwcG9ydCBwb2ludGVyIHByb2ZpbGluZy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzM4NworICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMzgxOTk2Nzg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgMS4gSW50cm9kdWNlZCBQdHJUYWcgZW51bXMgZm9yIHN1cHBvcnRp
bmcgcG9pbnRlciBwcm9maWxpbmcgbGF0ZXIuCisKKyAgICAgICAgMi4gQWxzbyBpbnRyb2R1Y2Vk
IHRhZ2dpbmcsIHVudGFnZ2luZywgcmV0YWdnaW5nLCBhbmQgdGFnIHJlbW92YWwgcGxhY2Vob2xk
ZXIKKyAgICAgICAgICAgdGVtcGxhdGUgZnVuY3Rpb25zIGZvciB0aGUgc2FtZSBwdXJwb3NlLgor
CisgICAgICAgIDMuIFByZXBhcmUgdGhlIG9mZmxpbmVhc20gZm9yIHN1cHBvcnRpbmcgcG9pbnRl
ciBwcm9maWxpbmcgbGF0ZXIuCisKKyAgICAgICAgNC4gVGFnZ2VkIHNvbWUgcG9pbnRlcnMgaW4g
TExJbnQgYXNtIGNvZGUuICBDdXJyZW50bHksIHRoZXNlIHNob3VsZCBoYXZlIG5vCisgICAgICAg
ICAgIGVmZmVjdCBvbiBiZWhhdmlvci4KKworICAgICAgICA1LiBSZW1vdmVkIHJldHVyblRvVGhy
b3dGb3JUaHJvd25FeGNlcHRpb24oKSBiZWNhdXNlIGl0IGlzIG5vdCB1c2VkIGFueXdoZXJlLgor
CisgICAgICAgIDYuIEFkZGVkIHRoZSBvZmZsaW5lYXNtIGZvbGRlciB0byBKYXZhU2NyaXB0Q29y
ZSBYY29kZSBwcm9qZWN0IHNvIHRoYXQgaXQncworICAgICAgICAgICBlYXNpZXIgdG8gdmlldyBh
bmQgZWRpdCB0aGVzZSBmaWxlcyBpbiBYY29kZS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0
OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogYnl0ZWNvZGUvTExJbnRDYWxsTGlua0luZm8uaDoKKyAgICAgICAgKEpTQzo6TExJ
bnRDYWxsTGlua0luZm86OnVubGluayk6CisgICAgICAgICogbGxpbnQvTExJbnREYXRhLmNwcDoK
KyAgICAgICAgKEpTQzo6TExJbnQ6OmluaXRpYWxpemUpOgorICAgICAgICAqIGxsaW50L0xMSW50
RGF0YS5oOgorICAgICAgICAqIGxsaW50L0xMSW50RXhjZXB0aW9ucy5jcHA6CisgICAgICAgIChK
U0M6OkxMSW50OjpyZXR1cm5Ub1Rocm93Rm9yVGhyb3duRXhjZXB0aW9uKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBsbGludC9MTEludEV4Y2VwdGlvbnMuaDoKKyAgICAgICAgKiBsbGludC9MTEludE9m
ZmxpbmVBc21Db25maWcuaDoKKyAgICAgICAgKiBsbGludC9MTEludE9mZnNldHNFeHRyYWN0b3Iu
Y3BwOgorICAgICAgICAqIGxsaW50L0xMSW50UENSYW5nZXMuaDoKKyAgICAgICAgKEpTQzo6TExJ
bnQ6OmlzTExJbnRQQyk6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgorICAg
ICAgICAoSlNDOjpMTEludDo6TExJTlRfU0xPV19QQVRIX0RFQ0wpOgorICAgICAgICAoSlNDOjpM
TEludDo6aGFuZGxlSG9zdENhbGwpOgorICAgICAgICAoSlNDOjpMTEludDo6c2V0VXBDYWxsKToK
KyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbToKKyAgICAgICAgKiBsbGlu
dC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtOgorICAgICAgICAqIGxsaW50L0xvd0xldmVs
SW50ZXJwcmV0ZXI2NC5hc206CisgICAgICAgICogb2ZmbGluZWFzbS9hc3QucmI6CisgICAgICAg
ICogb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS9yaXNj
LnJiOgorICAgICAgICAqIHJ1bnRpbWUvUHRyVGFnLmg6IEFkZGVkLgorICAgICAgICAoSlNDOjp1
bmlxdWVQdHJUYWdJRCk6CisgICAgICAgIChKU0M6OnB0clRhZyk6CisgICAgICAgIChKU0M6OnRh
Z0NvZGVQdHIpOgorICAgICAgICAoSlNDOjp1bnRhZ0NvZGVQdHIpOgorICAgICAgICAoSlNDOjpy
ZXRhZ0NvZGVQdHIpOgorICAgICAgICAoSlNDOjpyZW1vdmVDb2RlUHRyVGFnKToKKwogMjAxOC0w
My0wNiAgRG9taW5payBJbmZ1ZWhyICA8ZGluZnVlaHJAaWdhbGlhLmNvbT4KIAogICAgICAgICBb
QVJNXSBBc3NlbWJsZXIgd2FybmluZ3M6ICJ1c2Ugb2YgcjEzIGlzIGRlcHJlY2F0ZWQiCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAyMjkzNTIpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTgz
OCw2ICs4MzgsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBCiAg
ICAgcnVudGltZS9PcGVyYXRpb25zLmgKICAgICBydW50aW1lL09wdGlvbnMuaAogICAgIHJ1bnRp
bWUvUGFyc2VJbnQuaAorICAgIHJ1bnRpbWUvUHRyVGFnLmgKICAgICBydW50aW1lL1ByaXZhdGVO
YW1lLmgKICAgICBydW50aW1lL1Byb2dyYW1FeGVjdXRhYmxlLmgKICAgICBydW50aW1lL1Byb21p
c2VEZWZlcnJlZFRpbWVyLmgKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZp
c2lvbiAyMjkzNTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTc2Nyw2ICsxNzY3LDcg
QEAKIAkJRkU2M0RENTQxRUE5QjYxRTAwMTAzQTY5IC8qIFByaW50ZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFNjNERDUzMUVBOUI2MEUwMDEwM0E2
OSAvKiBQcmludGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJRkU2NDkxMzcxRDc4RjAxRDAwQTY5NEQ0IC8qIEV4Y2VwdGlvblNjb3BlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTY0OTEzNjFENzhG
MDEzMDBBNjk0RDQgLyogRXhjZXB0aW9uU2NvcGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGRTY4QzYzNzFCOTBERTA0MDA0MkJDQjMgLyogTWFj
cm9Bc3NlbWJsZXJQcmludGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGRTY4QzYzNjFCOTBEREQ5MDA0MkJDQjMgLyogTWFjcm9Bc3NlbWJsZXJQcmlu
dGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
RkU2QzFFNEEyMDM2NkYwMTAwQkRDMkI3IC8qIFB0clRhZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkU5QUUxQzgyMDMyQzg4NzAwMkI2OTM0IC8qIFB0
clRhZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUZFNkY1NkRFMUU2NEVBRDYwMEQxNzgwMSAvKiBWTVRyYXBzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTZGNTZERDFFNjRFOTIwMDBEMTc4MDEgLyog
Vk1UcmFwcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUZFN0M0MTk2MUI5N0ZDNEIwMEY0RDU5OCAvKiBQaW5nUG9uZ1N0YWNrT3ZlcmZsb3dUZXN0
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFREE1
MEQ0MUI5N0Y0NDIwMDlBM0I0RiAvKiBQaW5nUG9uZ1N0YWNrT3ZlcmZsb3dUZXN0LmNwcCAqLzsg
fTsKIAkJRkU4MEMxOTcxRDc3NUNERDAwODUxMEMwIC8qIENhdGNoU2NvcGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFODBDMTk2MUQ3NzVCMjcwMDg1
MTBDMCAvKiBDYXRjaFNjb3BlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKQEAgLTQ3MDUsNiArNDcwNiw3IEBACiAJCUZFOThCNUI2MUJCOUFFMTEwMDcz
RTdBNiAvKiBKSVRTdWJHZW5lcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSklUU3ViR2VuZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFOTlC
MjQ3MUMyNEI2RDMwMEM4MjE1OSAvKiBKSVROZWdHZW5lcmF0b3IuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSklUTmVnR2VuZXJhdG9yLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRkU5OUIyNDgxQzI0QjZEMzAwQzgyMTU5IC8qIEpJVE5lZ0dlbmVy
YXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKSVROZWdHZW5lcmF0b3Iu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRkU5QUUxQzgyMDMyQzg4NzAwMkI2OTM0
IC8qIFB0clRhZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQdHJUYWcuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkVBMDg2MUUxODJCN0EwNDAwRjZEODUxIC8q
IEJyZWFrcG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQnJlYWtwb2lu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRUEwODYxRjE4MkI3QTA0MDBGNkQ4
NTEgLyogRGVidWdnZXJQcmltaXRpdmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERlYnVnZ2VyUHJpbWl0aXZlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
RUEwQzQwMDFDREQ3RDBFMDA0ODE5OTEgLyogRnVuY3Rpb25XaGl0ZWxpc3QuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRnVuY3Rpb25XaGl0ZWxpc3QuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDcyNSw2ICs0NzI3LDI1IEBACiAJCUZFREE1MEQ1
MUI5N0Y0RDkwMDlBM0I0RiAvKiBQaW5nUG9uZ1N0YWNrT3ZlcmZsb3dUZXN0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFBpbmdQb25nU3RhY2tPdmVyZmxvd1Rlc3QuaDsgcGF0
aCA9IEFQSS90ZXN0cy9QaW5nUG9uZ1N0YWNrT3ZlcmZsb3dUZXN0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUZFRjA0MDUwMUFBRTY2MkQwMEJEMjhCMCAvKiBDb21wYXJlQW5kU3dh
cFRlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQ29tcGFyZUFu
ZFN3YXBUZXN0LmNwcDsgcGF0aCA9IEFQSS90ZXN0cy9Db21wYXJlQW5kU3dhcFRlc3QuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRUYwNDA1MjFBQUVDNEVEMDBCRDI4QjAgLyog
Q29tcGFyZUFuZFN3YXBUZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IENv
bXBhcmVBbmRTd2FwVGVzdC5oOyBwYXRoID0gQVBJL3Rlc3RzL0NvbXBhcmVBbmRTd2FwVGVzdC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGRUYzNDc1MjIwMzYyQjFCMDBCN0MwRUYg
LyogcGFyc2VyLnJiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucnVieTsgcGF0aCA9IHBhcnNlci5y
Yjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRkVGMzQ3NTMyMDM2MkIxQjAwQjdDMEVG
IC8qIHJpc2MucmIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5ydWJ5OyBwYXRoID0gcmlzYy5yYjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRkVGMzQ3NTQyMDM2MkIxQjAwQjdDMEVGIC8q
IHNlbGZfaGFzaC5yYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnJ1Ynk7IHBhdGggPSBzZWxmX2hh
c2gucmI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUZFRjM0NzU1MjAzNjJCMUMwMEI3
QzBFRiAvKiBhcm0ucmIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5ydWJ5OyBwYXRoID0gYXJtLnJi
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGRUYzNDc1NjIwMzYyQjFDMDBCN0MwRUYg
LyogYmFja2VuZHMucmIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5ydWJ5OyBwYXRoID0gYmFja2Vu
ZHMucmI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUZFRjM0NzU3MjAzNjJCMUQwMEI3
QzBFRiAvKiByZWdpc3RlcnMucmIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5ydWJ5OyBwYXRoID0g
cmVnaXN0ZXJzLnJiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGRUYzNDc1ODIwMzYy
QjFEMDBCN0MwRUYgLyogYXN0LnJiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucnVieTsgcGF0aCA9
IGFzdC5yYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRkVGMzQ3NTkyMDM2MkIxRDAw
QjdDMEVGIC8qIGFzbS5yYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnJ1Ynk7IHBhdGggPSBhc20u
cmI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUZFRjM0NzVBMjAzNjJCMUUwMEI3QzBF
RiAvKiBjbG9vcC5yYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnJ1Ynk7IHBhdGggPSBjbG9vcC5y
Yjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRkVGMzQ3NUIyMDM2MkIxRTAwQjdDMEVG
IC8qIHg4Ni5yYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnJ1Ynk7IHBhdGggPSB4ODYucmI7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUZFRjM0NzVDMjAzNjJCMUUwMEI3QzBFRiAvKiBt
aXBzLnJiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucnVieTsgcGF0aCA9IG1pcHMucmI7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUZFRjM0NzVEMjAzNjJCMUYwMEI3QzBFRiAvKiBjb25m
aWcucmIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5ydWJ5OyBwYXRoID0gY29uZmlnLnJiOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGRUYzNDc1RTIwMzYyQjFGMDBCN0MwRUYgLyogaW5z
dHJ1Y3Rpb25zLnJiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucnVieTsgcGF0aCA9IGluc3RydWN0
aW9ucy5yYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRkVGMzQ3NUYyMDM2MkIyMDAw
QjdDMEVGIC8qIG9wdC5yYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnJ1Ynk7IHBhdGggPSBvcHQu
cmI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUZFRjM0NzYwMjAzNjJCMjEwMEI3QzBF
RiAvKiB0cmFuc2Zvcm0ucmIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5ydWJ5OyBwYXRoID0gdHJh
bnNmb3JtLnJiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGRUYzNDc2MTIwMzYyQjIx
MDBCN0MwRUYgLyogb2Zmc2V0cy5yYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnJ1Ynk7IHBhdGgg
PSBvZmZzZXRzLnJiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGRUYzNDc2MjIwMzYy
QjIyMDBCN0MwRUYgLyogYXJtNjQucmIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5ydWJ5OyBwYXRo
ID0gYXJtNjQucmI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUZFRjM0NzYzMjAzNjJC
MjMwMEI3QzBFRiAvKiBzZXR0aW5ncy5yYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnJ1Ynk7IHBh
dGggPSBzZXR0aW5ncy5yYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRkVGMzQ3NjQy
MDM2MkIyMzAwQjdDMEVGIC8qIGdlbmVyYXRlX29mZnNldF9leHRyYWN0b3IucmIgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0LnNjcmlwdC5ydWJ5OyBwYXRoID0gZ2VuZXJhdGVfb2Zmc2V0X2V4dHJhY3Rvci5yYjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkVGNDlBQTkxRUI5NDdGRTAwNjUzQkRCIC8q
IE11bHRpdGhyZWFkZWRNdWx0aVZNRXhlY3V0aW9uVGVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBNdWx0aXRocmVhZGVkTXVsdGlWTUV4ZWN1dGlvblRlc3QuY3Bw
OyBwYXRoID0gQVBJL3Rlc3RzL011bHRpdGhyZWFkZWRNdWx0aVZNRXhlY3V0aW9uVGVzdC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFRjQ5QUFBMUVCOTQ3RkUwMDY1M0JEQiAv
KiBNdWx0aXRocmVhZGVkTXVsdGlWTUV4ZWN1dGlvblRlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gTXVsdGl0aHJlYWRlZE11bHRpVk1FeGVjdXRpb25UZXN0Lmg7IHBhdGgg
PSBBUEkvdGVzdHMvTXVsdGl0aHJlYWRlZE11bHRpVk1FeGVjdXRpb25UZXN0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFRkQ2RkM1MUQ1RTc5NzAwMDhGMkYwQiAvKiBKU1N0cmlu
Z0lubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTdHJpbmdJbmxp
bmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00ODgwLDYgKzQ5MDEsNyBAQAog
CQkJCTE0MjlENzdBMEVEMjBENzMwMEI4OTYxOSAvKiBpbnRlcnByZXRlciAqLywKIAkJCQkxNDI5
RDkyQzBFRDIyRDcwMDBCODk2MTkgLyogaml0ICovLAogCQkJCTBGNDY4MDlDMTRCQTdGNEQwMEJG
RTI3MiAvKiBsbGludCAqLywKKwkJCQlGRUYzNDc1MTIwMzYyOTEzMDBCN0MwRUYgLyogb2ZmbGlu
ZWFzbSAqLywKIAkJCQk3RTM5RDgzNzBFQzNBMzg4MDAzQUYxMUEgLyogcGFyc2VyICovLAogCQkJ
CTAzNDc2OERGRkYzOEE1MDQxMURCOUM4QiAvKiBQcm9kdWN0cyAqLywKIAkJCQk5NUFCODMxQTBE
QTQyQzY5MDBCQzgzRjMgLyogcHJvZmlsZXIgKi8sCkBAIC02ODUxLDYgKzY4NzMsNyBAQAogCQkJ
CTc5QjAwQ0JCMUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94eU9iamVjdC5oICovLAogCQkJCTc5MTYw
REJCMUM4RTNFQzgwMDhDMDg1QSAvKiBQcm94eVJldm9rZS5jcHAgKi8sCiAJCQkJNzkxNjBEQkMx
QzhFM0VDODAwOEMwODVBIC8qIFByb3h5UmV2b2tlLmggKi8sCisJCQkJRkU5QUUxQzgyMDMyQzg4
NzAwMkI2OTM0IC8qIFB0clRhZy5oICovLAogCQkJCTBGNTc4MEExMThGRTFFOTgwMDFFNzJEOSAv
KiBQdXJlTmFOLmggKi8sCiAJCQkJMEYwQ0Q0QzAxNUYxQTYwNDAwMzJGMUMwIC8qIFB1dERpcmVj
dEluZGV4TW9kZS5oICovLAogCQkJCTE0N0I4NDYyMEU2REU2QjEwMDQ3NzVBNCAvKiBQdXRQcm9w
ZXJ0eVNsb3QuaCAqLywKQEAgLTgwMzEsNiArODA1NCwzMiBAQAogCQkJcGF0aCA9IGRvbWppdDsK
IAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCUZFRjM0NzUxMjAzNjI5MTMwMEI3
QzBFRiAvKiBvZmZsaW5lYXNtICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJl
biA9ICgKKwkJCQlGRUYzNDc1NTIwMzYyQjFDMDBCN0MwRUYgLyogYXJtLnJiICovLAorCQkJCUZF
RjM0NzYyMjAzNjJCMjIwMEI3QzBFRiAvKiBhcm02NC5yYiAqLywKKwkJCQlGRUYzNDc1OTIwMzYy
QjFEMDBCN0MwRUYgLyogYXNtLnJiICovLAorCQkJCUZFRjM0NzU4MjAzNjJCMUQwMEI3QzBFRiAv
KiBhc3QucmIgKi8sCisJCQkJRkVGMzQ3NTYyMDM2MkIxQzAwQjdDMEVGIC8qIGJhY2tlbmRzLnJi
ICovLAorCQkJCUZFRjM0NzVBMjAzNjJCMUUwMEI3QzBFRiAvKiBjbG9vcC5yYiAqLywKKwkJCQlG
RUYzNDc1RDIwMzYyQjFGMDBCN0MwRUYgLyogY29uZmlnLnJiICovLAorCQkJCUZFRjM0NzY0MjAz
NjJCMjMwMEI3QzBFRiAvKiBnZW5lcmF0ZV9vZmZzZXRfZXh0cmFjdG9yLnJiICovLAorCQkJCUZF
RjM0NzVFMjAzNjJCMUYwMEI3QzBFRiAvKiBpbnN0cnVjdGlvbnMucmIgKi8sCisJCQkJRkVGMzQ3
NUMyMDM2MkIxRTAwQjdDMEVGIC8qIG1pcHMucmIgKi8sCisJCQkJRkVGMzQ3NjEyMDM2MkIyMTAw
QjdDMEVGIC8qIG9mZnNldHMucmIgKi8sCisJCQkJRkVGMzQ3NUYyMDM2MkIyMDAwQjdDMEVGIC8q
IG9wdC5yYiAqLywKKwkJCQlGRUYzNDc1MjIwMzYyQjFCMDBCN0MwRUYgLyogcGFyc2VyLnJiICov
LAorCQkJCUZFRjM0NzU3MjAzNjJCMUQwMEI3QzBFRiAvKiByZWdpc3RlcnMucmIgKi8sCisJCQkJ
RkVGMzQ3NTMyMDM2MkIxQjAwQjdDMEVGIC8qIHJpc2MucmIgKi8sCisJCQkJRkVGMzQ3NTQyMDM2
MkIxQjAwQjdDMEVGIC8qIHNlbGZfaGFzaC5yYiAqLywKKwkJCQlGRUYzNDc2MzIwMzYyQjIzMDBC
N0MwRUYgLyogc2V0dGluZ3MucmIgKi8sCisJCQkJRkVGMzQ3NjAyMDM2MkIyMTAwQjdDMEVGIC8q
IHRyYW5zZm9ybS5yYiAqLywKKwkJCQlGRUYzNDc1QjIwMzYyQjFFMDBCN0MwRUYgLyogeDg2LnJi
ICovLAorCQkJKTsKKwkJCXBhdGggPSBvZmZsaW5lYXNtOworCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKKwkJfTsKIC8qIEVuZCBQQlhHcm91cCBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWEhl
YWRlcnNCdWlsZFBoYXNlIHNlY3Rpb24gKi8KQEAgLTgwNjcsNiArODExNiw3IEBACiAJCQkJMEZF
Qzg1NzIxQkRBQ0RDNzAwODBGRjc0IC8qIEFpckJhc2ljQmxvY2suaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGMkM2M0JDMUU2MzQ0MEMwMEMxMzgzOSAvKiBBaXJCbG9ja0luc2VydGlvblNldC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEZCMzg3OEUxQkZCQzQ0RDAwRTNBQjFFIC8qIEFpckJsb2NrV29y
a2xpc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCUZFNkMxRTRBMjAzNjZGMDEwMEJEQzJCNyAvKiBQ
dHJUYWcuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNzlDN0NBMUU3NEM5M0IwMEVCMzREMSAvKiBB
aXJCcmVha0NyaXRpY2FsRWRnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNjE4MzJBMUM0NUJG
MDcwMDcyNDUwQiAvKiBBaXJDQ2FsbGluZ0NvbnZlbnRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGRUM4NTc0MUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJDQ2FsbFNwZWNpYWwuaCBpbiBIZWFkZXJz
ICovLApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xMSW50Q2FsbExpbmtJ
bmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xMSW50
Q2FsbExpbmtJbmZvLmgJKHJldmlzaW9uIDIyOTM1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9MTEludENhbGxMaW5rSW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDYgKzI3LDcg
QEAKIAogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlckNv
ZGVSZWYuaCIKKyNpbmNsdWRlICJQdHJUYWcuaCIKICNpbmNsdWRlIDx3dGYvU2VudGluZWxMaW5r
ZWRMaXN0Lmg+CiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtNTAsNiArNTEsNyBAQCBzdHJ1Y3QgTExJ
bnRDYWxsTGlua0luZm8gOiBwdWJsaWMgQmFzaWNSCiAgICAgewogICAgICAgICBjYWxsZWUuY2xl
YXIoKTsKICAgICAgICAgbWFjaGluZUNvZGVUYXJnZXQgPSBNYWNyb0Fzc2VtYmxlckNvZGVQdHIo
KTsKKyAgICAgICAgY2FsbFB0clRhZyA9IE5vUHRyVGFnOwogICAgICAgICBpZiAoaXNPbkxpc3Qo
KSkKICAgICAgICAgICAgIHJlbW92ZSgpOwogICAgIH0KQEAgLTU3LDYgKzU5LDcgQEAgc3RydWN0
IExMSW50Q2FsbExpbmtJbmZvIDogcHVibGljIEJhc2ljUgogICAgIFdyaXRlQmFycmllcjxKU09i
amVjdD4gY2FsbGVlOwogICAgIFdyaXRlQmFycmllcjxKU09iamVjdD4gbGFzdFNlZW5DYWxsZWU7
CiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIG1hY2hpbmVDb2RlVGFyZ2V0OworICAgIFB0clRh
ZyBjYWxsUHRyVGFnIHsgTm9QdHJUYWcgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAJKHJldmlzaW9uIDIy
OTM1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludERhdGEuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEt
MjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTYzLDkgKzYzLDQ2IEBAIHZvaWQgaW5pdGlhbGl6ZSgpCiAjZWxzZSAv
LyBFTkFCTEUoSklUKQogICAgIGxsaW50X2VudHJ5KCZEYXRhOjpzX29wY29kZU1hcCk7CiAKKyAg
ICBmb3IgKGludCBpID0gMDsgaSA8IE5VTUJFUl9PRl9CWVRFQ09ERV9JRFM7ICsraSkgeworICAg
ICAgICBQdHJUYWcgdGFnID0gKGkgPT0gb3BfY2F0Y2gpID8gRXhjZXB0aW9uSGFuZGxlclB0clRh
ZyA6IEJ5dGVjb2RlUHRyVGFnOworICAgICAgICBEYXRhOjpzX29wY29kZU1hcFtpXSA9IHRhZ0Nv
ZGVQdHIoRGF0YTo6c19vcGNvZGVNYXBbaV0sIHRhZyk7CisgICAgfQorCisgICAgaWYgKFZNOjpj
YW5Vc2VKSVQoKSkgeworICAgICAgICBmb3IgKGludCBpID0gTlVNQkVSX09GX0JZVEVDT0RFX0lE
UzsgaSA8IE5VTUJFUl9PRl9CWVRFQ09ERV9JRFMgKyBOVU1CRVJfT0ZfQllURUNPREVfSEVMUEVS
X0lEUzsgKytpKQorICAgICAgICAgICAgRGF0YTo6c19vcGNvZGVNYXBbaV0gPSB0YWdDb2RlUHRy
KERhdGE6OnNfb3Bjb2RlTWFwW2ldLCBwdHJUYWcoQnl0ZWNvZGVIZWxwZXJQdHJUYWcsIGkpKTsK
KyAgICB9IGVsc2UgeworICAgICAgICBzdGF0aWMgY29uc3QgUHRyVGFnIHRhZ3NGb3JPcGNvZGVb
XSA9IHsKKyAgICAgICAgICAgIENvZGVFbnRyeVB0clRhZywgLy8gbGxpbnRfcHJvZ3JhbV9wcm9s
b2d1ZQorICAgICAgICAgICAgQ29kZUVudHJ5UHRyVGFnLCAvLyBsbGludF9ldmFsX3Byb2xvZ3Vl
CisgICAgICAgICAgICBDb2RlRW50cnlQdHJUYWcsIC8vIGxsaW50X21vZHVsZV9wcm9ncmFtX3By
b2xvZ3VlCisgICAgICAgICAgICBDb2RlRW50cnlQdHJUYWcsIC8vIGxsaW50X2Z1bmN0aW9uX2Zv
cl9jYWxsX3Byb2xvZ3VlCisgICAgICAgICAgICBDb2RlRW50cnlQdHJUYWcsIC8vIGxsaW50X2Z1
bmN0aW9uX2Zvcl9jb25zdHJ1Y3RfcHJvbG9ndWUKKyAgICAgICAgICAgIENvZGVFbnRyeVdpdGhB
cml0eUNoZWNrUHRyVGFnLCAvLyBsbGludF9mdW5jdGlvbl9mb3JfY2FsbF9hcml0eV9jaGVjawor
ICAgICAgICAgICAgQ29kZUVudHJ5V2l0aEFyaXR5Q2hlY2tQdHJUYWcsIC8vIGxsaW50X2Z1bmN0
aW9uX2Zvcl9jb25zdHJ1Y3RfYXJpdHlfY2hlY2sKKyAgICAgICAgICAgIENvZGVFbnRyeVB0clRh
ZywgLy8gbGxpbnRfZ2VuZXJpY19yZXR1cm5fcG9pbnQKKyAgICAgICAgICAgIEJ5dGVjb2RlUHRy
VGFnLCAvLyBsbGludF90aHJvd19mcm9tX3Nsb3dfcGF0aF90cmFtcG9saW5lCisgICAgICAgICAg
ICBDb2RlRW50cnlQdHJUYWcsIC8vIGxsaW50X3Rocm93X2R1cmluZ19jYWxsX3RyYW1wb2xpbmUK
KyAgICAgICAgICAgIE5hdGl2ZUNvZGVQdHJUYWcsIC8vIGxsaW50X25hdGl2ZV9jYWxsX3RyYW1w
b2xpbmUKKyAgICAgICAgICAgIE5hdGl2ZUNvZGVQdHJUYWcsIC8vIGxsaW50X25hdGl2ZV9jb25z
dHJ1Y3RfdHJhbXBvbGluZQorICAgICAgICAgICAgSW50ZXJuYWxGdW5jdGlvblB0clRhZywgLy8g
bGxpbnRfaW50ZXJuYWxfZnVuY3Rpb25fY2FsbF90cmFtcG9saW5lCisgICAgICAgICAgICBJbnRl
cm5hbEZ1bmN0aW9uUHRyVGFnLCAvLyBsbGludF9pbnRlcm5hbF9mdW5jdGlvbl9jb25zdHJ1Y3Rf
dHJhbXBvbGluZQorICAgICAgICAgICAgRXhjZXB0aW9uSGFuZGxlclB0clRhZywgLy8gaGFuZGxl
VW5jYXVnaHRFeGNlcHRpb24KKyAgICAgICAgfTsKKworICAgICAgICBzdGF0aWNfYXNzZXJ0KHNp
emVvZih0YWdzRm9yT3Bjb2RlKSAvIHNpemVvZih0YWdzRm9yT3Bjb2RlWzBdKSA9PSBOVU1CRVJf
T0ZfQllURUNPREVfSEVMUEVSX0lEUywgIiIpOworICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0YXRp
Y19jYXN0PHVpbnRwdHJfdD4obGxpbnRfcHJvZ3JhbV9wcm9sb2d1ZSkgPT0gTlVNQkVSX09GX0JZ
VEVDT0RFX0lEUywgIiIpOworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTlVNQkVSX09G
X0JZVEVDT0RFX0hFTFBFUl9JRFM7ICsraSkgeworICAgICAgICAgICAgaW50IG9wY29kZUlEID0g
aSArIE5VTUJFUl9PRl9CWVRFQ09ERV9JRFM7CisgICAgICAgICAgICBEYXRhOjpzX29wY29kZU1h
cFtvcGNvZGVJRF0gPSB0YWdDb2RlUHRyKERhdGE6OnNfb3Bjb2RlTWFwW29wY29kZUlEXSwgdGFn
c0Zvck9wY29kZVtpXSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2b2lkKiBoYW5kbGVyID0g
TExJbnQ6OmdldENvZGVQdHIobGxpbnRfdGhyb3dfZnJvbV9zbG93X3BhdGhfdHJhbXBvbGluZSk7
CiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtYXhPcGNvZGVMZW5ndGggKyAxOyArK2kpCi0gICAg
ICAgIERhdGE6OnNfZXhjZXB0aW9uSW5zdHJ1Y3Rpb25zW2ldLnUucG9pbnRlciA9Ci0gICAgICAg
ICAgICBMTEludDo6Z2V0Q29kZVB0cihsbGludF90aHJvd19mcm9tX3Nsb3dfcGF0aF90cmFtcG9s
aW5lKTsKKyAgICAgICAgRGF0YTo6c19leGNlcHRpb25JbnN0cnVjdGlvbnNbaV0udS5wb2ludGVy
ID0gaGFuZGxlcjsKKwogI2VuZGlmIC8vIEVOQUJMRShKSVQpCiAKICNpZiBFTkFCTEUoTExJTlRf
U1RBVFMpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5oCShyZXZp
c2lvbiAyMjkzNTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIkpTQ0pTVmFsdWUu
aCIKICNpbmNsdWRlICJPcGNvZGUuaCIKKyNpbmNsdWRlICJQdHJUYWcuaCIKICNpbmNsdWRlIDxh
cnJheT4KICNpbmNsdWRlIDx3dGYvUG9pbnRlclByZXBhcmF0aW9ucy5oPgogCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRFeGNlcHRpb25zLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRFeGNlcHRpb25zLmNwcAkocmV2aXNp
b24gMjI5MzUyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RXhjZXB0aW9u
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDExLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMS0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzksMTIgKzM5LDYgQEAKIAogbmFtZXNwYWNlIEpT
QyB7IG5hbWVzcGFjZSBMTEludCB7CiAKLUluc3RydWN0aW9uKiByZXR1cm5Ub1Rocm93Rm9yVGhy
b3duRXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAgICBVTlVTRURfUEFSQU0oZXhlYyk7
Ci0gICAgcmV0dXJuIExMSW50OjpleGNlcHRpb25JbnN0cnVjdGlvbnMoKTsKLX0KLQogSW5zdHJ1
Y3Rpb24qIHJldHVyblRvVGhyb3coRXhlY1N0YXRlKiBleGVjKQogewogICAgIFVOVVNFRF9QQVJB
TShleGVjKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludEV4Y2VwdGlv
bnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRFeGNl
cHRpb25zLmgJKHJldmlzaW9uIDIyOTM1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9MTEludEV4Y2VwdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDExLTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCwxMCArMzQsNiBAQCBzdHJ1Y3Qg
SW5zdHJ1Y3Rpb247CiAKIG5hbWVzcGFjZSBMTEludCB7CiAKLS8vIFRlbGxzIHlvdSB3aGVyZSB0
byBqdW1wIHRvIGlmIHlvdSB3YW50IHRvIHJldHVybi10by10aHJvdywgYWZ0ZXIgeW91J3ZlIGFs
cmVhZHkKLS8vIHNldCB1cCBhbGwgaW5mb3JtYXRpb24gbmVlZGVkIHRvIHRocm93IHRoZSBleGNl
cHRpb24uCi1JbnN0cnVjdGlvbiogcmV0dXJuVG9UaHJvd0ZvclRocm93bkV4Y2VwdGlvbihFeGVj
U3RhdGUqKTsKLQogLy8gR2l2ZXMgeW91IGEgUEMgdGhhdCB5b3UgY2FuIHRlbGwgdGhlIGludGVy
cHJldGVyIHRvIGdvIHRvLCB3aGljaCB3aGVuIGFkdmFuY2VkCiAvLyBiZXR3ZWVuIDEgYW5kIDkg
c2xvdHMgd2lsbCBnaXZlIHlvdSBhbiAiaW5zdHJ1Y3Rpb24iIHRoYXQgdGhyZWFkcyB0byB0aGUK
IC8vIGludGVycHJldGVyJ3MgZXhjZXB0aW9uIGhhbmRsZXIuCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2ZmbGluZUFzbUNvbmZpZy5oCShyZXZpc2lv
biAyMjkzNTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRPZmZsaW5lQXNt
Q29uZmlnLmgJKHdvcmtpbmcgY29weSkKQEAgLTE3Myw0ICsxNzMsMTAgQEAKICNkZWZpbmUgT0ZG
TElORV9BU01fRVhFQ1VUSU9OX1RSQUNJTkcgMAogI2VuZGlmCiAKKyNpZiBVU0UoUE9JTlRFUl9Q
Uk9GSUxJTkcpCisjZGVmaW5lIE9GRkxJTkVfQVNNX1BPSU5URVJfUFJPRklMSU5HIDEKKyNlbHNl
CisjZGVmaW5lIE9GRkxJTkVfQVNNX1BPSU5URVJfUFJPRklMSU5HIDAKKyNlbmRpZgorCiAjZGVm
aW5lIE9GRkxJTkVfQVNNX0dJR0FDQUdFX0VOQUJMRUQgR0lHQUNBR0VfRU5BQkxFRApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2Zmc2V0c0V4dHJhY3Rvci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50T2Zmc2V0c0V4dHJh
Y3Rvci5jcHAJKHJldmlzaW9uIDIyOTM1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9MTEludE9mZnNldHNFeHRyYWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTEs
NiArNTEsNyBAQAogI2luY2x1ZGUgIk1hcmtlZFNwYWNlLmgiCiAjaW5jbHVkZSAiTmF0aXZlRXhl
Y3V0YWJsZS5oIgogI2luY2x1ZGUgIlByb3RvQ2FsbEZyYW1lLmgiCisjaW5jbHVkZSAiUHRyVGFn
LmgiCiAjaW5jbHVkZSAiU2hhZG93Q2hpY2tlbi5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZS5oIgog
I2luY2x1ZGUgIlN0cnVjdHVyZUNoYWluLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTExJbnRQQ1Jhbmdlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9MTEludFBDUmFuZ2VzLmgJKHJldmlzaW9uIDIyOTM1MikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9MTEludFBDUmFuZ2VzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDcg
KzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlIDx3dGYvUG9pbnRlclByZXBhcmF0
aW9ucy5oPgorI2luY2x1ZGUgIlB0clRhZy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtNDAs
OCArNDAsOCBAQCBleHRlcm4gIkMiIHsKIEFMV0FZU19JTkxJTkUgYm9vbCBpc0xMSW50UEModm9p
ZCogcGMpCiB7CiAgICAgdWludHB0cl90IHBjQXNJbnQgPSBiaXR3aXNlX2Nhc3Q8dWludHB0cl90
PihwYyk7Ci0gICAgdWludHB0cl90IGxsaW50U3RhcnQgPSBiaXR3aXNlX2Nhc3Q8dWludHB0cl90
PihXVEZfUFJFUEFSRV9GVU5DVElPTl9QT0lOVEVSX0ZPUl9FWEVDVVRJT04obGxpbnRQQ1Jhbmdl
U3RhcnQpKTsKLSAgICB1aW50cHRyX3QgbGxpbnRFbmQgPSBiaXR3aXNlX2Nhc3Q8dWludHB0cl90
PihXVEZfUFJFUEFSRV9GVU5DVElPTl9QT0lOVEVSX0ZPUl9FWEVDVVRJT04obGxpbnRQQ1Jhbmdl
RW5kKSk7CisgICAgdWludHB0cl90IGxsaW50U3RhcnQgPSB1bnRhZ0NvZGVQdHI8dWludHB0cl90
PihsbGludFBDUmFuZ2VTdGFydCwgQ0Z1bmN0aW9uUHRyVGFnKTsKKyAgICB1aW50cHRyX3QgbGxp
bnRFbmQgPSB1bnRhZ0NvZGVQdHI8dWludHB0cl90PihsbGludFBDUmFuZ2VFbmQsIENGdW5jdGlv
blB0clRhZyk7CiAgICAgUkVMRUFTRV9BU1NFUlQobGxpbnRTdGFydCA8IGxsaW50RW5kKTsKICAg
ICByZXR1cm4gbGxpbnRTdGFydCA8PSBwY0FzSW50ICYmIHBjQXNJbnQgPD0gbGxpbnRFbmQ7CiB9
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5j
cHAJKHJldmlzaW9uIDIyOTM1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTElu
dFNsb3dQYXRocy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDExLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDExLTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xNTksMTIgKzE1OSwxMyBAQCBuYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIExMSW50IHsKICAgICAgICAgSlNWYWx1ZTo6ZW5jb2RlKHZh
bHVlKTsgICAgICAgICAgICAgICAgICBcCiAgICAgfSB3aGlsZSAoZmFsc2UpCiAKLSNkZWZpbmUg
TExJTlRfQ0FMTF9FTkRfSU1QTChleGVjLCBjYWxsVGFyZ2V0KSBMTElOVF9SRVRVUk5fVFdPKChj
YWxsVGFyZ2V0KSwgKGV4ZWMpKQorI2RlZmluZSBMTElOVF9DQUxMX0VORF9JTVBMKGV4ZWMsIGNh
bGxUYXJnZXQsIGNhbGxUYXJnZXRUYWcpIFwKKyAgICBMTElOVF9SRVRVUk5fVFdPKHJldGFnQ29k
ZVB0cigoY2FsbFRhcmdldCksIGNhbGxUYXJnZXRUYWcsIFNsb3dQYXRoUHRyVGFnKSwgKGV4ZWMp
KQogCiAjZGVmaW5lIExMSU5UX0NBTExfVEhST1coZXhlYywgZXhjZXB0aW9uVG9UaHJvdykgZG8g
eyAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIEV4ZWNTdGF0ZSogX19jdF9leGVjID0gKGV4
ZWMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIHRocm93RXhj
ZXB0aW9uKF9fY3RfZXhlYywgdGhyb3dTY29wZSwgZXhjZXB0aW9uVG9UaHJvdyk7ICAgICAgICBc
Ci0gICAgICAgIExMSU5UX0NBTExfRU5EX0lNUEwoMCwgY2FsbFRvVGhyb3coX19jdF9leGVjKSk7
ICAgICAgICAgICAgICAgICBcCisgICAgICAgIExMSU5UX0NBTExfRU5EX0lNUEwoMCwgY2FsbFRv
VGhyb3coX19jdF9leGVjKSwgRXhjZXB0aW9uSGFuZGxlclB0clRhZyk7ICAgICAgICAgICAgICAg
ICBcCiAgICAgfSB3aGlsZSAoZmFsc2UpCiAKICNkZWZpbmUgTExJTlRfQ0FMTF9DSEVDS19FWENF
UFRJT04oZXhlYywgZXhlY0NhbGxlZSkgZG8geyAgICAgICAgICAgICAgIFwKQEAgLTE3MiwxNSAr
MTczLDE1IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgTExJbnQgewogICAgICAgICBFeGVj
U3RhdGUqIF9fY2NlX2V4ZWNDYWxsZWUgPSAoZXhlY0NhbGxlZSk7ICAgICAgICAgICAgICAgICAg
ICAgXAogICAgICAgICBkb0V4Y2VwdGlvbkZ1enppbmdJZkVuYWJsZWQoX19jY2VfZXhlYywgdGhy
b3dTY29wZSwgIkxMSW50U2xvd1BhdGhzL2NhbGwiLCBudWxscHRyKTsgXAogICAgICAgICBpZiAo
VU5MSUtFTFkodGhyb3dTY29wZS5leGNlcHRpb24oKSkpICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAotICAgICAgICAgICAgTExJTlRfQ0FMTF9FTkRfSU1QTCgwLCBjYWxsVG9UaHJvdyhfX2Nj
ZV9leGVjQ2FsbGVlKSk7ICAgICAgXAorICAgICAgICAgICAgTExJTlRfQ0FMTF9FTkRfSU1QTCgw
LCBjYWxsVG9UaHJvdyhfX2NjZV9leGVjQ2FsbGVlKSwgRXhjZXB0aW9uSGFuZGxlclB0clRhZyk7
IFwKICAgICB9IHdoaWxlIChmYWxzZSkKIAotI2RlZmluZSBMTElOVF9DQUxMX1JFVFVSTihleGVj
LCBleGVjQ2FsbGVlLCBjYWxsVGFyZ2V0KSBkbyB7ICAgICAgICAgICAgXAorI2RlZmluZSBMTElO
VF9DQUxMX1JFVFVSTihleGVjLCBleGVjQ2FsbGVlLCBjYWxsVGFyZ2V0LCBjYWxsVGFyZ2V0VGFn
KSBkbyB7IFwKICAgICAgICAgRXhlY1N0YXRlKiBfX2NyX2V4ZWMgPSAoZXhlYyk7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgRXhlY1N0YXRlKiBfX2NyX2V4ZWND
YWxsZWUgPSAoZXhlY0NhbGxlZSk7ICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgdm9p
ZCogX19jcl9jYWxsVGFyZ2V0ID0gKGNhbGxUYXJnZXQpOyAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKICAgICAgICAgTExJTlRfQ0FMTF9DSEVDS19FWENFUFRJT04oX19jcl9leGVjLCBfX2Ny
X2V4ZWNDYWxsZWUpOyAgICAgICAgIFwKLSAgICAgICAgTExJTlRfQ0FMTF9FTkRfSU1QTChfX2Ny
X2V4ZWNDYWxsZWUsIF9fY3JfY2FsbFRhcmdldCk7ICAgICAgICAgIFwKKyAgICAgICAgTExJTlRf
Q0FMTF9FTkRfSU1QTChfX2NyX2V4ZWNDYWxsZWUsIF9fY3JfY2FsbFRhcmdldCwgY2FsbFRhcmdl
dFRhZyk7IFwKICAgICB9IHdoaWxlIChmYWxzZSkKIAogI2RlZmluZSBMTElOVF9SRVRVUk5fQ0FM
TEVFX0ZSQU1FKGV4ZWNDYWxsZWUpIGRvIHsgICAgICAgICAgICAgICAgICAgICAgXApAQCAtMjgz
LDcgKzI4NCw3IEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHRyYWNlKQogICAgICAgICAgICAgb3Bj
b2RlTmFtZXNbb3Bjb2RlSURdLCBwYyk7CiAgICAgaWYgKG9wY29kZUlEID09IG9wX2VudGVyKSB7
CiAgICAgICAgIGRhdGFMb2dGKCJGcmFtZSB3aWxsIGV2ZW50dWFsbHkgcmV0dXJuIHRvICVwXG4i
LCBleGVjLT5yZXR1cm5QQygpLnZhbHVlKCkpOwotICAgICAgICAqYml0d2lzZV9jYXN0PHZvbGF0
aWxlIGNoYXIqPihleGVjLT5yZXR1cm5QQygpLnZhbHVlKCkpOworICAgICAgICAqcmVtb3ZlQ29k
ZVB0clRhZzx2b2xhdGlsZSBjaGFyKj4oZXhlYy0+cmV0dXJuUEMoKS52YWx1ZSgpKTsKICAgICB9
CiAgICAgaWYgKG9wY29kZUlEID09IG9wX3JldCkgewogICAgICAgICBkYXRhTG9nRigiV2lsbCBi
ZSByZXR1cm5pbmcgdG8gJXBcbiIsIGV4ZWMtPnJldHVyblBDKCkudmFsdWUoKSk7CkBAIC0xMzI1
LDcgKzEzMjYsNyBAQCBzdGF0aWMgU2xvd1BhdGhSZXR1cm5UeXBlIGhhbmRsZUhvc3RDYWxsCiAg
ICAgICAgICAgICB2bS5ob3N0Q2FsbFJldHVyblZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGNhbGxE
YXRhLm5hdGl2ZS5mdW5jdGlvbihleGVjQ2FsbGVlKSk7CiAgICAgICAgICAgICAKICAgICAgICAg
ICAgIFBvaXNvbmVkTWFzbVB0cjo6YXNzZXJ0SXNOb3RQb2lzb25lZChMTEludDo6Z2V0Q29kZVB0
cihnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSk7Ci0gICAgICAgICAgICBMTElOVF9DQUxMX1JFVFVS
TihleGVjQ2FsbGVlLCBleGVjQ2FsbGVlLCBMTEludDo6Z2V0Q29kZVB0cihnZXRIb3N0Q2FsbFJl
dHVyblZhbHVlKSk7CisgICAgICAgICAgICBMTElOVF9DQUxMX1JFVFVSTihleGVjQ2FsbGVlLCBl
eGVjQ2FsbGVlLCBMTEludDo6Z2V0Q29kZVB0cihnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSwgQ0Z1
bmN0aW9uUHRyVGFnKTsKICAgICAgICAgfQogICAgICAgICAKICNpZiBMTElOVF9TTE9XX1BBVEhf
VFJBQ0lORwpAQCAtMTM0OSw3ICsxMzUwLDcgQEAgc3RhdGljIFNsb3dQYXRoUmV0dXJuVHlwZSBo
YW5kbGVIb3N0Q2FsbAogICAgICAgICB2bS5ob3N0Q2FsbFJldHVyblZhbHVlID0gSlNWYWx1ZTo6
ZGVjb2RlKGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uKGV4ZWNDYWxsZWUpKTsKIAogICAg
ICAgICBQb2lzb25lZE1hc21QdHI6OmFzc2VydElzTm90UG9pc29uZWQoTExJbnQ6OmdldENvZGVQ
dHIoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkpOwotICAgICAgICBMTElOVF9DQUxMX1JFVFVSTihl
eGVjQ2FsbGVlLCBleGVjQ2FsbGVlLCBMTEludDo6Z2V0Q29kZVB0cihnZXRIb3N0Q2FsbFJldHVy
blZhbHVlKSk7CisgICAgICAgIExMSU5UX0NBTExfUkVUVVJOKGV4ZWNDYWxsZWUsIGV4ZWNDYWxs
ZWUsIExMSW50OjpnZXRDb2RlUHRyKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpLCBDRnVuY3Rpb25Q
dHJUYWcpOwogICAgIH0KICAgICAKICNpZiBMTElOVF9TTE9XX1BBVEhfVFJBQ0lORwpAQCAtMTM4
NywxMCArMTM4OCwxMSBAQCBpbmxpbmUgU2xvd1BhdGhSZXR1cm5UeXBlIHNldFVwQ2FsbChFeGVj
CiAgICAgICAgICAgICAgICAgY2FsbExpbmtJbmZvLT5jYWxsZWUuc2V0KHZtLCBjYWxsZXJDb2Rl
QmxvY2ssIGludGVybmFsRnVuY3Rpb24pOwogICAgICAgICAgICAgICAgIGNhbGxMaW5rSW5mby0+
bGFzdFNlZW5DYWxsZWUuc2V0KHZtLCBjYWxsZXJDb2RlQmxvY2ssIGludGVybmFsRnVuY3Rpb24p
OwogICAgICAgICAgICAgICAgIGNhbGxMaW5rSW5mby0+bWFjaGluZUNvZGVUYXJnZXQgPSBjb2Rl
UHRyOworICAgICAgICAgICAgICAgIGNhbGxMaW5rSW5mby0+Y2FsbFB0clRhZyA9IEludGVybmFs
RnVuY3Rpb25QdHJUYWc7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIFBvaXNvbmVkTWFz
bVB0cjo6YXNzZXJ0SXNOb3RQb2lzb25lZChjb2RlUHRyLmV4ZWN1dGFibGVBZGRyZXNzKCkpOwot
ICAgICAgICAgICAgTExJTlRfQ0FMTF9SRVRVUk4oZXhlYywgZXhlY0NhbGxlZSwgY29kZVB0ci5l
eGVjdXRhYmxlQWRkcmVzcygpKTsKKyAgICAgICAgICAgIExMSU5UX0NBTExfUkVUVVJOKGV4ZWMs
IGV4ZWNDYWxsZWUsIGNvZGVQdHIuZXhlY3V0YWJsZUFkZHJlc3MoKSwgSW50ZXJuYWxGdW5jdGlv
blB0clRhZyk7CiAgICAgICAgIH0KICAgICAgICAgdGhyb3dTY29wZS5yZWxlYXNlKCk7CiAgICAg
ICAgIHJldHVybiBoYW5kbGVIb3N0Q2FsbChleGVjQ2FsbGVlLCBwYywgY2FsbGVlQXNWYWx1ZSwg
a2luZCk7CkBAIC0xMzk5LDEwICsxNDAxLDEyIEBAIGlubGluZSBTbG93UGF0aFJldHVyblR5cGUg
c2V0VXBDYWxsKEV4ZWMKICAgICBKU1Njb3BlKiBzY29wZSA9IGNhbGxlZS0+c2NvcGVVbmNoZWNr
ZWQoKTsKICAgICBFeGVjdXRhYmxlQmFzZSogZXhlY3V0YWJsZSA9IGNhbGxlZS0+ZXhlY3V0YWJs
ZSgpOwogCisgICAgUHRyVGFnIGNhbGxQdHJUYWcgPSBOb1B0clRhZzsKICAgICBNYWNyb0Fzc2Vt
YmxlckNvZGVQdHIgY29kZVB0cjsKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IDA7CiAgICAg
aWYgKGV4ZWN1dGFibGUtPmlzSG9zdEZ1bmN0aW9uKCkpIHsKICAgICAgICAgY29kZVB0ciA9IGV4
ZWN1dGFibGUtPmVudHJ5cG9pbnRGb3Ioa2luZCwgTXVzdENoZWNrQXJpdHkpOworICAgICAgICBj
YWxsUHRyVGFnID0gTmF0aXZlQ29kZVB0clRhZzsKICAgICB9IGVsc2UgewogICAgICAgICBGdW5j
dGlvbkV4ZWN1dGFibGUqIGZ1bmN0aW9uRXhlY3V0YWJsZSA9IHN0YXRpY19jYXN0PEZ1bmN0aW9u
RXhlY3V0YWJsZSo+KGV4ZWN1dGFibGUpOwogCkBAIC0xNDE3LDEwICsxNDIxLDEzIEBAIGlubGlu
ZSBTbG93UGF0aFJldHVyblR5cGUgc2V0VXBDYWxsKEV4ZWMKICAgICAgICAgY29kZUJsb2NrID0g
KmNvZGVCbG9ja1Nsb3Q7CiAgICAgICAgIEFTU0VSVChjb2RlQmxvY2spOwogICAgICAgICBBcml0
eUNoZWNrTW9kZSBhcml0eTsKLSAgICAgICAgaWYgKGV4ZWNDYWxsZWUtPmFyZ3VtZW50Q291bnRJ
bmNsdWRpbmdUaGlzKCkgPCBzdGF0aWNfY2FzdDxzaXplX3Q+KGNvZGVCbG9jay0+bnVtUGFyYW1l
dGVycygpKSkKKyAgICAgICAgaWYgKGV4ZWNDYWxsZWUtPmFyZ3VtZW50Q291bnRJbmNsdWRpbmdU
aGlzKCkgPCBzdGF0aWNfY2FzdDxzaXplX3Q+KGNvZGVCbG9jay0+bnVtUGFyYW1ldGVycygpKSkg
ewogICAgICAgICAgICAgYXJpdHkgPSBNdXN0Q2hlY2tBcml0eTsKLSAgICAgICAgZWxzZQorICAg
ICAgICAgICAgY2FsbFB0clRhZyA9IENvZGVFbnRyeVdpdGhBcml0eUNoZWNrUHRyVGFnOworICAg
ICAgICB9IGVsc2UgewogICAgICAgICAgICAgYXJpdHkgPSBBcml0eUNoZWNrTm90UmVxdWlyZWQ7
CisgICAgICAgICAgICBjYWxsUHRyVGFnID0gQ29kZUVudHJ5UHRyVGFnOworICAgICAgICB9CiAg
ICAgICAgIGNvZGVQdHIgPSBmdW5jdGlvbkV4ZWN1dGFibGUtPmVudHJ5cG9pbnRGb3Ioa2luZCwg
YXJpdHkpOwogICAgIH0KIApAQCAtMTQzNiwxMiArMTQ0MywxNCBAQCBpbmxpbmUgU2xvd1BhdGhS
ZXR1cm5UeXBlIHNldFVwQ2FsbChFeGVjCiAgICAgICAgIGNhbGxMaW5rSW5mby0+Y2FsbGVlLnNl
dCh2bSwgY2FsbGVyQ29kZUJsb2NrLCBjYWxsZWUpOwogICAgICAgICBjYWxsTGlua0luZm8tPmxh
c3RTZWVuQ2FsbGVlLnNldCh2bSwgY2FsbGVyQ29kZUJsb2NrLCBjYWxsZWUpOwogICAgICAgICBj
YWxsTGlua0luZm8tPm1hY2hpbmVDb2RlVGFyZ2V0ID0gY29kZVB0cjsKKyAgICAgICAgUkVMRUFT
RV9BU1NFUlQoY2FsbFB0clRhZyAhPSBOb1B0clRhZyk7CisgICAgICAgIGNhbGxMaW5rSW5mby0+
Y2FsbFB0clRhZyA9IGNhbGxQdHJUYWc7CiAgICAgICAgIGlmIChjb2RlQmxvY2spCiAgICAgICAg
ICAgICBjb2RlQmxvY2stPmxpbmtJbmNvbWluZ0NhbGwoZXhlYywgY2FsbExpbmtJbmZvKTsKICAg
ICB9CiAKICAgICBQb2lzb25lZE1hc21QdHI6OmFzc2VydElzTm90UG9pc29uZWQoY29kZVB0ci5l
eGVjdXRhYmxlQWRkcmVzcygpKTsKLSAgICBMTElOVF9DQUxMX1JFVFVSTihleGVjLCBleGVjQ2Fs
bGVlLCBjb2RlUHRyLmV4ZWN1dGFibGVBZGRyZXNzKCkpOworICAgIExMSU5UX0NBTExfUkVUVVJO
KGV4ZWMsIGV4ZWNDYWxsZWUsIGNvZGVQdHIuZXhlY3V0YWJsZUFkZHJlc3MoKSwgY2FsbFB0clRh
Zyk7CiB9CiAKIGlubGluZSBTbG93UGF0aFJldHVyblR5cGUgZ2VuZXJpY0NhbGwoRXhlY1N0YXRl
KiBleGVjLCBJbnN0cnVjdGlvbiogcGMsIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKQEAg
LTE1ODEsNyArMTU5MCw3IEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9jYWxsX2V2
YWwKICAgICB9CiAgICAgCiAgICAgdm0uaG9zdENhbGxSZXR1cm5WYWx1ZSA9IGV2YWwoZXhlY0Nh
bGxlZSk7Ci0gICAgTExJTlRfQ0FMTF9SRVRVUk4oZXhlYywgZXhlY0NhbGxlZSwgTExJbnQ6Omdl
dENvZGVQdHIoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkpOworICAgIExMSU5UX0NBTExfUkVUVVJO
KGV4ZWMsIGV4ZWNDYWxsZWUsIExMSW50OjpnZXRDb2RlUHRyKGdldEhvc3RDYWxsUmV0dXJuVmFs
dWUpLCBDRnVuY3Rpb25QdHJUYWcpOwogfQogCiBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3Bh
dGhfc3RyY2F0KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50
ZXJwcmV0ZXIzMl82NC5hc20KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20JKHJldmlzaW9uIDIyOTM1MikKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCSh3
b3JraW5nIGNvcHkpCkBAIC05Niw3ICs5Niw3IEBAIG1hY3JvIGNhbGxTbG93UGF0aChzbG93UGF0
aCkKICAgICBtb3ZlIHIwLCBQQwogZW5kCiAKLW1hY3JvIGRvVk1FbnRyeShtYWtlQ2FsbCkKK21h
Y3JvIGRvVk1FbnRyeShtYWtlQ2FsbCwgdW51c2VkMSwgdW51c2VkMikKICAgICBmdW5jdGlvblBy
b2xvZ3VlKCkKICAgICBwdXNoQ2FsbGVlU2F2ZXMoKQogCkBAIC0xOTU3LDggKzE5NTcsOCBAQCBt
YWNybyBkb0NhbGwoc2xvd1BhdGgsIHByZXBhcmVDYWxsKQogICAgIHN0b3JlaSB0MiwgQXJndW1l
bnRDb3VudCArIFBheWxvYWRPZmZzZXRbdDNdCiAgICAgc3RvcmVpIENlbGxUYWcsIENhbGxlZSAr
IFRhZ09mZnNldFt0M10KICAgICBtb3ZlIHQzLCBzcAotICAgIHByZXBhcmVDYWxsKExMSW50Q2Fs
bExpbmtJbmZvOjptYWNoaW5lQ29kZVRhcmdldFt0MV0sIHQyLCB0MywgdDQpCi0gICAgY2FsbFRh
cmdldEZ1bmN0aW9uKExMSW50Q2FsbExpbmtJbmZvOjptYWNoaW5lQ29kZVRhcmdldFt0MV0pCisg
ICAgcHJlcGFyZUNhbGwoTExJbnRDYWxsTGlua0luZm86Om1hY2hpbmVDb2RlVGFyZ2V0W3QxXSwg
dDIsIHQzLCB0NCwgbWFjcm8gKGNhbGxQdHJUYWcpIGVuZCkKKyAgICBjYWxsVGFyZ2V0RnVuY3Rp
b24oTExJbnRDYWxsTGlua0luZm86Om1hY2hpbmVDb2RlVGFyZ2V0W3QxXSwgTm9QdHJUYWcpCiAK
IC5vcENhbGxTbG93OgogICAgIHNsb3dQYXRoRm9yQ2FsbChzbG93UGF0aCwgcHJlcGFyZUNhbGwp
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0
LmFzbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJ
bnRlcnByZXRlcjY0LmFzbQkocmV2aXNpb24gMjI5MzUyKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20JKHdvcmtpbmcgY29weSkKQEAgLTI0
LDcgKzI0LDcgQEAKIAogIyBVdGlsaXRpZXMuCiBtYWNybyBqdW1wVG9JbnN0cnVjdGlvbigpCi0g
ICAgam1wIFtQQiwgUEMsIDhdCisgICAgam1wIFtQQiwgUEMsIDhdLCBCeXRlY29kZVB0clRhZwog
ZW5kCiAKIG1hY3JvIGRpc3BhdGNoKGFkdmFuY2UpCkBAIC05Miw3ICs5Miw3IEBAIG1hY3JvIGND
YWxsMlZvaWQoZnVuY3Rpb24pCiAgICAgICAgICMgU2VlIGh0dHA6Ly9tc2RuLm1pY3Jvc29mdC5j
b20vZW4tdXMvbGlicmFyeS9tczIzNTI4Ni5hc3B4CiAgICAgICAgIHN1YnAgMzIsIHNwIAogICAg
ICAgICBjYWxsIGZ1bmN0aW9uCi0gICAgICAgIGFkZHAgMzIsIHNwIAorICAgICAgICBhZGRwIDMy
LCBzcAogICAgIGVsc2UKICAgICAgICAgY0NhbGwyKGZ1bmN0aW9uKQogICAgIGVuZApAQCAtMTE1
LDcgKzExNSw3IEBAIG1hY3JvIGNDYWxsNChmdW5jdGlvbikKICAgICBlbmQKIGVuZAogCi1tYWNy
byBkb1ZNRW50cnkobWFrZUNhbGwpCittYWNybyBkb1ZNRW50cnkobWFrZUNhbGwsIGNhbGxUYWcs
IGNhbGxXaXRoQXJpdHlDaGVja1RhZykKICAgICBmdW5jdGlvblByb2xvZ3VlKCkKICAgICBwdXNo
Q2FsbGVlU2F2ZXMoKQogCkBAIC0yMjUsNyArMjI1LDE2IEBAIG1hY3JvIGRvVk1FbnRyeShtYWtl
Q2FsbCkKIAogICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KGV4dHJhVGVtcFJlZywgMHhi
YWQwZGMwMikKIAotICAgIG1ha2VDYWxsKGVudHJ5LCB0MykKKyAgICBpZiBQT0lOVEVSX1BST0ZJ
TElORworICAgICAgICBidGJueiBQcm90b0NhbGxGcmFtZTo6aGFzQXJpdHlNaXNtYXRjaFtwcm90
b0NhbGxGcmFtZV0sIC5kb0NhbGxXaXRoQXJpdHlDaGVjaworICAgICAgICBtb3ZlIGNhbGxUYWcs
IHQyCisgICAgICAgIGptcCAucmVhZHlUb0NhbGwKKyAgICAuZG9DYWxsV2l0aEFyaXR5Q2hlY2s6
CisgICAgICAgIG1vdmUgY2FsbFdpdGhBcml0eUNoZWNrVGFnLCB0MgorICAgIC5yZWFkeVRvQ2Fs
bDoKKyAgICBlbmQKKworICAgIG1ha2VDYWxsKGVudHJ5LCB0MywgdDIpCiAKICAgICAjIFdlIG1h
eSBoYXZlIGp1c3QgbWFkZSBhIGNhbGwgaW50byBhIEpTIGZ1bmN0aW9uLCBzbyB3ZSBjYW4ndCBy
ZWx5IG9uIHNwCiAgICAgIyBmb3IgYW55dGhpbmcgYnV0IHRoZSBmYWN0IHRoYXQgb3VyIG93biBs
b2NhbHMgKGllIHRoZSBWTUVudHJ5UmVjb3JkKSBhcmUKQEAgLTI0OSwxOCArMjU4LDE4IEBAIG1h
Y3JvIGRvVk1FbnRyeShtYWtlQ2FsbCkKIGVuZAogCiAKLW1hY3JvIG1ha2VKYXZhU2NyaXB0Q2Fs
bChlbnRyeSwgdGVtcCkKK21hY3JvIG1ha2VKYXZhU2NyaXB0Q2FsbChlbnRyeSwgdGVtcCwgY2Fs
bFRhZykKICAgICBhZGRwIDE2LCBzcAogICAgIGlmIENfTE9PUAogICAgICAgICBjbG9vcENhbGxK
U0Z1bmN0aW9uIGVudHJ5CiAgICAgZWxzZQotICAgICAgICBjYWxsIGVudHJ5CisgICAgICAgIGNh
bGwgZW50cnksIGNhbGxUYWcKICAgICBlbmQKICAgICBzdWJwIDE2LCBzcAogZW5kCiAKIAotbWFj
cm8gbWFrZUhvc3RGdW5jdGlvbkNhbGwoZW50cnksIHRlbXApCittYWNybyBtYWtlSG9zdEZ1bmN0
aW9uQ2FsbChlbnRyeSwgdGVtcCwgY2FsbFRhZykKICAgICBtb3ZlIGVudHJ5LCB0ZW1wCiAgICAg
c3RvcmVwIGNmciwgW3NwXQogICAgIG1vdmUgc3AsIGEwCkBAIC0yNzAsMTAgKzI3OSwxMCBAQCBt
YWNybyBtYWtlSG9zdEZ1bmN0aW9uQ2FsbChlbnRyeSwgdGVtcCkKICAgICBlbHNpZiBYODZfNjRf
V0lOCiAgICAgICAgICMgV2UgbmVlZCB0byBhbGxvY2F0ZSAzMiBieXRlcyBvbiB0aGUgc3RhY2sg
Zm9yIHRoZSBzaGFkb3cgc3BhY2UuCiAgICAgICAgIHN1YnAgMzIsIHNwCi0gICAgICAgIGNhbGwg
dGVtcAorICAgICAgICBjYWxsIHRlbXAsIGNhbGxUYWcKICAgICAgICAgYWRkcCAzMiwgc3AKICAg
ICBlbHNlCi0gICAgICAgIGNhbGwgdGVtcAorICAgICAgICBjYWxsIHRlbXAsIGNhbGxUYWcKICAg
ICBlbmQKIGVuZAogCkBAIC0zNzAsNyArMzc5LDcgQEAgbWFjcm8gY2hlY2tTd2l0Y2hUb0pJVEZv
ckxvb3AoKQogICAgICAgICAgICAgY0NhbGwyKF9sbGludF9sb29wX29zcikKICAgICAgICAgICAg
IGJ0cHogcjAsIC5yZWNvdmVyCiAgICAgICAgICAgICBtb3ZlIHIxLCBzcAotICAgICAgICAgICAg
am1wIHIwCisgICAgICAgICAgICBqbXAgcjAsIENvZGVFbnRyeVB0clRhZwogICAgICAgICAucmVj
b3ZlcjoKICAgICAgICAgICAgIGxvYWRpIEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXRbY2ZyXSwg
UEMKICAgICAgICAgZW5kKQpAQCAtNTQzLDYgKzU1MiwxNSBAQCBtYWNybyBmdW5jdGlvbkFyaXR5
Q2hlY2soZG9uZUxhYmVsLCBzbG93CiAgICAgYnRpeiB0MSwgLmNvbnRpbnVlCiAKIC5ub0V4dHJh
U2xvdDoKKyAgICBpZiBQT0lOVEVSX1BST0ZJTElORworICAgICAgICBpZiBBUk02NAorICAgICAg
ICAgICAgbG9hZHAgOFtjZnJdLCBscgorICAgICAgICBlbmQKKworICAgICAgICBhZGRwIDE2LCBj
ZnIsIHQzCisgICAgICAgIHVudGFnUmV0dXJuQWRkcmVzcyB0MworICAgIGVuZAorCiAgICAgLy8g
TW92ZSBmcmFtZSB1cCB0MSBzbG90cwogICAgIG5lZ3EgdDEKICAgICBtb3ZlIGNmciwgdDMKQEAg
LTU2Niw2ICs1ODQsMTUgQEAgbWFjcm8gZnVuY3Rpb25Bcml0eUNoZWNrKGRvbmVMYWJlbCwgc2xv
dwogICAgIGFkZHAgOCwgdDMKICAgICBiYWRkaW56IDEsIHQyLCAuZmlsbExvb3AKIAorICAgIGlm
IFBPSU5URVJfUFJPRklMSU5HCisgICAgICAgIGFkZHAgMTYsIGNmciwgdDEKKyAgICAgICAgdGFn
UmV0dXJuQWRkcmVzcyB0MQorCisgICAgICAgIGlmIEFSTTY0CisgICAgICAgICAgICBzdG9yZXAg
bHIsIDhbY2ZyXQorICAgICAgICBlbmQKKyAgICBlbmQKKwogLmNvbnRpbnVlOgogICAgICMgUmVs
b2FkIENvZGVCbG9jayBhbmQgcmVzZXQgUEMsIHNpbmNlIHRoZSBzbG93X3BhdGggY2xvYmJlcmVk
IHRoZW0uCiAgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQxCkBAIC0xOTU2LDYgKzE5ODMsOSBA
QCBlbmQKIG1hY3JvIGRvQ2FsbChzbG93UGF0aCwgcHJlcGFyZUNhbGwpCiAgICAgbG9hZGlzRnJv
bUluc3RydWN0aW9uKDIsIHQwKQogICAgIGxvYWRwRnJvbUluc3RydWN0aW9uKDUsIHQxKQorICAg
IGlmIFBPSU5URVJfUFJPRklMSU5HCisgICAgICAgIG1vdmUgdDEsIHQ1CisgICAgZW5kCiAgICAg
bG9hZHAgTExJbnRDYWxsTGlua0luZm86OmNhbGxlZVt0MV0sIHQyCiAgICAgbG9hZENvbnN0YW50
T3JWYXJpYWJsZSh0MCwgdDMpCiAgICAgYnFuZXEgdDMsIHQyLCAub3BDYWxsU2xvdwpAQCAtMTk3
MSwxMSArMjAwMSwyNSBAQCBtYWNybyBkb0NhbGwoc2xvd1BhdGgsIHByZXBhcmVDYWxsKQogICAg
IGlmIFBPSVNPTgogICAgICAgICBsb2FkcCBfZ19KSVRDb2RlUG9pc29uLCB0MgogICAgICAgICB4
b3JwIExMSW50Q2FsbExpbmtJbmZvOjptYWNoaW5lQ29kZVRhcmdldFt0MV0sIHQyCi0gICAgICAg
IHByZXBhcmVDYWxsKHQyLCB0MSwgdDMsIHQ0KQotICAgICAgICBjYWxsVGFyZ2V0RnVuY3Rpb24o
dDIpCisgICAgICAgIHByZXBhcmVDYWxsKHQyLCB0MSwgdDMsIHQ0LCBtYWNybyAoY2FsbFB0clRh
ZykKKyAgICAgICAgICAgIGlmIFBPSU5URVJfUFJPRklMSU5HCisgICAgICAgICAgICAgICAgbG9h
ZHAgTExJbnRDYWxsTGlua0luZm86OmNhbGxQdHJUYWdbdDVdLCBjYWxsUHRyVGFnCisgICAgICAg
ICAgICBlbmQKKyAgICAgICAgZW5kKQorCQlpZiBQT0lOVEVSX1BST0ZJTElORworCQkJbG9hZHAg
TExJbnRDYWxsTGlua0luZm86OmNhbGxQdHJUYWdbdDVdLCB0MworCQllbmQKKyAgICAgICAgY2Fs
bFRhcmdldEZ1bmN0aW9uKHQyLCB0MykKICAgICBlbHNlCi0gICAgICAgIHByZXBhcmVDYWxsKExM
SW50Q2FsbExpbmtJbmZvOjptYWNoaW5lQ29kZVRhcmdldFt0MV0sIHQyLCB0MywgdDQpCi0gICAg
ICAgIGNhbGxUYXJnZXRGdW5jdGlvbihMTEludENhbGxMaW5rSW5mbzo6bWFjaGluZUNvZGVUYXJn
ZXRbdDFdKQorICAgICAgICBwcmVwYXJlQ2FsbChMTEludENhbGxMaW5rSW5mbzo6bWFjaGluZUNv
ZGVUYXJnZXRbdDFdLCB0MiwgdDMsIHQ0LCBtYWNybyAoY2FsbFB0clRhZykKKyAgICAgICAgICAg
IGlmIFBPSU5URVJfUFJPRklMSU5HCisgICAgICAgICAgICAgICAgbG9hZHAgTExJbnRDYWxsTGlu
a0luZm86OmNhbGxQdHJUYWdbdDVdLCBjYWxsUHRyVGFnCisgICAgICAgICAgICBlbmQKKyAgICAg
ICAgZW5kKQorCQlpZiBQT0lOVEVSX1BST0ZJTElORworCQkJbG9hZHAgTExJbnRDYWxsTGlua0lu
Zm86OmNhbGxQdHJUYWdbdDVdLCB0MworCQllbmQKKyAgICAgICAgY2FsbFRhcmdldEZ1bmN0aW9u
KExMSW50Q2FsbExpbmtJbmZvOjptYWNoaW5lQ29kZVRhcmdldFt0MV0sIHQzKQogICAgIGVuZAog
CiAub3BDYWxsU2xvdzoKQEAgLTIwNzUsNyArMjExOSw3IEBAIF9sbGludF90aHJvd19mcm9tX3Ns
b3dfcGF0aF90cmFtcG9saW5lOgogICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0MQogICAgIGFuZHAg
TWFya2VkQmxvY2tNYXNrLCB0MQogICAgIGxvYWRwIE1hcmtlZEJsb2NrRm9vdGVyT2Zmc2V0ICsg
TWFya2VkQmxvY2s6OkZvb3Rlcjo6bV92bVt0MV0sIHQxCi0gICAgam1wIFZNOjp0YXJnZXRNYWNo
aW5lUENGb3JUaHJvd1t0MV0KKyAgICBqbXAgVk06OnRhcmdldE1hY2hpbmVQQ0ZvclRocm93W3Qx
XSwgRXhjZXB0aW9uSGFuZGxlclB0clRhZwogCiAKIF9sbGludF90aHJvd19kdXJpbmdfY2FsbF90
cmFtcG9saW5lOgpAQCAtMjEwNiwxMiArMjE1MCwxMiBAQCBtYWNybyBuYXRpdmVDYWxsVHJhbXBv
bGluZShleGVjdXRhYmxlT2ZmCiAgICAgZWxzZQogICAgICAgICBpZiBYODZfNjRfV0lOCiAgICAg
ICAgICAgICBzdWJwIDMyLCBzcAotICAgICAgICAgICAgY2FsbCBleGVjdXRhYmxlT2Zmc2V0VG9G
dW5jdGlvblt0MV0KKyAgICAgICAgICAgIGNhbGwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb25b
dDFdLCBOYXRpdmVDb2RlUHRyVGFnCiAgICAgICAgICAgICBhZGRwIDMyLCBzcAogICAgICAgICBl
bHNlCiAgICAgICAgICAgICBsb2FkcCBfZ19OYXRpdmVDb2RlUG9pc29uLCB0MgogICAgICAgICAg
ICAgeG9ycCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0sIHQyCi0gICAgICAgICAgICBj
YWxsIHQyCisgICAgICAgICAgICBjYWxsIHQyLCBOYXRpdmVDb2RlUHRyVGFnCiAgICAgICAgIGVu
ZAogICAgIGVuZAogCkBAIC0yMTQ5LDEyICsyMTkzLDEyIEBAIG1hY3JvIGludGVybmFsRnVuY3Rp
b25DYWxsVHJhbXBvbGluZShvZmYKICAgICBlbHNlCiAgICAgICAgIGlmIFg4Nl82NF9XSU4KICAg
ICAgICAgICAgIHN1YnAgMzIsIHNwCi0gICAgICAgICAgICBjYWxsIG9mZnNldE9mRnVuY3Rpb25b
dDFdCisgICAgICAgICAgICBjYWxsIG9mZnNldE9mRnVuY3Rpb25bdDFdLCBJbnRlcm5hbEZ1bmN0
aW9uUHRyVGFnCiAgICAgICAgICAgICBhZGRwIDMyLCBzcAogICAgICAgICBlbHNlCiAgICAgICAg
ICAgICBsb2FkcCBfZ19OYXRpdmVDb2RlUG9pc29uLCB0MgogICAgICAgICAgICAgeG9ycCBvZmZz
ZXRPZkZ1bmN0aW9uW3QxXSwgdDIKLSAgICAgICAgICAgIGNhbGwgdDIKKyAgICAgICAgICAgIGNh
bGwgdDIsIEludGVybmFsRnVuY3Rpb25QdHJUYWcKICAgICAgICAgZW5kCiAgICAgZW5kCiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnBy
ZXRlci5hc20JKHJldmlzaW9uIDIyOTM1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQkod29ya2luZyBjb3B5KQpAQCAtMjYwLDYgKzI2MCwx
NiBAQCBjb25zdCBBcml0aFByb2ZpbGVOdW1iZXJJbnQgPSAweDg4MDAwMAogY29uc3QgQXJpdGhQ
cm9maWxlTnVtYmVyTnVtYmVyID0gMHg5MDAwMDAKIGNvbnN0IEFyaXRoUHJvZmlsZUludE51bWJl
ciA9IDB4NTAwMDAwCiAKKyMgUG9pbnRlciBUYWdzCitjb25zdCBCeXRlY29kZVB0clRhZyA9IGNv
bnN0ZXhwciBCeXRlY29kZVB0clRhZworY29uc3QgQ29kZUVudHJ5UHRyVGFnID0gY29uc3RleHBy
IENvZGVFbnRyeVB0clRhZworY29uc3QgQ29kZUVudHJ5V2l0aEFyaXR5Q2hlY2tQdHJUYWcgPSBj
b25zdGV4cHIgQ29kZUVudHJ5V2l0aEFyaXR5Q2hlY2tQdHJUYWcKK2NvbnN0IEV4Y2VwdGlvbkhh
bmRsZXJQdHJUYWcgPSBjb25zdGV4cHIgRXhjZXB0aW9uSGFuZGxlclB0clRhZworY29uc3QgSW50
ZXJuYWxGdW5jdGlvblB0clRhZyA9IGNvbnN0ZXhwciBJbnRlcm5hbEZ1bmN0aW9uUHRyVGFnCitj
b25zdCBOYXRpdmVDb2RlUHRyVGFnID0gY29uc3RleHByIE5hdGl2ZUNvZGVQdHJUYWcKK2NvbnN0
IE5vUHRyVGFnID0gY29uc3RleHByIE5vUHRyVGFnCitjb25zdCBTbG93UGF0aFB0clRhZyA9IGNv
bnN0ZXhwciBTbG93UGF0aFB0clRhZworCiAjIFNvbWUgcmVnaXN0ZXIgY29udmVudGlvbnMuCiBp
ZiBKU1ZBTFVFNjQKICAgICAjIC0gVXNlIGEgcGFpciBvZiByZWdpc3RlcnMgdG8gcmVwcmVzZW50
IHRoZSBQQzogb25lIHJlZ2lzdGVyIGZvciB0aGUKQEAgLTc4NSw2ICs3OTUsNyBAQCBtYWNybyB1
bnBvaXNvbihwb2lzb24sIGZpZWxkLCBzY3JhdGNoKQogZW5kCiAKIG1hY3JvIGZ1bmN0aW9uUHJv
bG9ndWUoKQorICAgIHRhZ1JldHVybkFkZHJlc3Mgc3AKICAgICBpZiBYODYgb3IgWDg2X1dJTiBv
ciBYODZfNjQgb3IgWDg2XzY0X1dJTgogICAgICAgICBwdXNoIGNmcgogICAgIGVsc2lmIEFSTTY0
CkBAIC04NDgsMjIgKzg1OSwyMiBAQCBtYWNybyBjYWxsT3Bjb2RlU2xvd1BhdGgoc2xvd1BhdGgp
CiAgICAgY2FsbFNsb3dQYXRoKHNsb3dQYXRoKQogZW5kCiAKLW1hY3JvIGNhbGxUYXJnZXRGdW5j
dGlvbihjYWxsZWUpCittYWNybyBjYWxsVGFyZ2V0RnVuY3Rpb24oY2FsbGVlLCBjYWxsUHRyVGFn
KQogICAgIGlmIENfTE9PUAogICAgICAgICBjbG9vcENhbGxKU0Z1bmN0aW9uIGNhbGxlZQogICAg
IGVsc2UKLSAgICAgICAgY2FsbCBjYWxsZWUKKyAgICAgICAgY2FsbCBjYWxsZWUsIGNhbGxQdHJU
YWcKICAgICBlbmQKICAgICByZXN0b3JlU3RhY2tQb2ludGVyQWZ0ZXJDYWxsKCkKICAgICBkaXNw
YXRjaEFmdGVyQ2FsbCgpCiBlbmQKIAotbWFjcm8gcHJlcGFyZUZvclJlZ3VsYXJDYWxsKGNhbGxl
ZSwgdGVtcDEsIHRlbXAyLCB0ZW1wMykKK21hY3JvIHByZXBhcmVGb3JSZWd1bGFyQ2FsbChjYWxs
ZWUsIHRlbXAxLCB0ZW1wMiwgdGVtcDMsIHByZXBhcmVDYWxsUHRyVGFnKQogICAgIGFkZHAgQ2Fs
bGVyRnJhbWVBbmRQQ1NpemUsIHNwCiBlbmQKIAogIyBzcCBwb2ludHMgdG8gdGhlIG5ldyBmcmFt
ZQotbWFjcm8gcHJlcGFyZUZvclRhaWxDYWxsKGNhbGxlZSwgdGVtcDEsIHRlbXAyLCB0ZW1wMykK
K21hY3JvIHByZXBhcmVGb3JUYWlsQ2FsbChjYWxsZWUsIHRlbXAxLCB0ZW1wMiwgdGVtcDMsIHBy
ZXBhcmVDYWxsUHRyVGFnKQogICAgIHJlc3RvcmVDYWxsZWVTYXZlc1VzZWRCeUxMSW50KCkKIAog
ICAgIGxvYWRpIFBheWxvYWRPZmZzZXQgKyBBcmd1bWVudENvdW50W2Nmcl0sIHRlbXAyCkBAIC04
OTgsNiArOTA5LDExIEBAIG1hY3JvIHByZXBhcmVGb3JUYWlsQ2FsbChjYWxsZWUsIHRlbXAxLCAK
ICAgICAgICAgc3RvcmVwIHRlbXAzLCBbc3BdCiAgICAgZW5kCiAKKyAgICBpZiBQT0lOVEVSX1BS
T0ZJTElORworICAgICAgICBhZGRwIDE2LCBjZnIsIHRlbXAzCisgICAgICAgIHVudGFnUmV0dXJu
QWRkcmVzcyB0ZW1wMworICAgIGVuZAorCiAgICAgc3VicCB0ZW1wMiwgdGVtcDEKICAgICBsb2Fk
cCBbY2ZyXSwgY2ZyCiAKQEAgLTkwNyw4ICs5MjMsOSBAQCBtYWNybyBwcmVwYXJlRm9yVGFpbENh
bGwoY2FsbGVlLCB0ZW1wMSwgCiAgICAgc3RvcmVwIHRlbXAzLCBbdGVtcDEsIHRlbXAyLCAxXQog
ICAgIGJ0aW56IHRlbXAyLCAuY29weUxvb3AKIAorICAgIHByZXBhcmVDYWxsUHRyVGFnKHRlbXAy
KQogICAgIG1vdmUgdGVtcDEsIHNwCi0gICAgam1wIGNhbGxlZQorICAgIGptcCBjYWxsZWUsIHRl
bXAyCiBlbmQKIAogbWFjcm8gc2xvd1BhdGhGb3JDYWxsKHNsb3dQYXRoLCBwcmVwYXJlQ2FsbCkK
QEAgLTkxOSw5ICs5MzYsMTMgQEAgbWFjcm8gc2xvd1BhdGhGb3JDYWxsKHNsb3dQYXRoLCBwcmVw
YXJlQwogICAgICAgICBtYWNybyAoY2FsbGVlLCBjYWxsZWVGcmFtZVB0cikKICAgICAgICAgICAg
IGJ0cHogY2FsbGVlRnJhbWVQdHIsIC5kb250VXBkYXRlU1AKICAgICAgICAgICAgIG1vdmUgY2Fs
bGVlRnJhbWVQdHIsIHNwCi0gICAgICAgICAgICBwcmVwYXJlQ2FsbChjYWxsZWUsIHQyLCB0Mywg
dDQpCisgICAgICAgICAgICBwcmVwYXJlQ2FsbChjYWxsZWUsIHQyLCB0MywgdDQsIG1hY3JvIChj
YWxsUHRyVGFnUmVnKQorICAgICAgICAgICAgICAgIGlmIFBPSU5URVJfUFJPRklMSU5HCisgICAg
ICAgICAgICAgICAgICAgIG1vdmUgU2xvd1BhdGhQdHJUYWcsIGNhbGxQdHJUYWdSZWcKKyAgICAg
ICAgICAgICAgICBlbmQKKyAgICAgICAgICAgIGVuZCkKICAgICAgICAgLmRvbnRVcGRhdGVTUDoK
LSAgICAgICAgICAgIGNhbGxUYXJnZXRGdW5jdGlvbihjYWxsZWUpCisgICAgICAgICAgICBjYWxs
VGFyZ2V0RnVuY3Rpb24oY2FsbGVlLCBTbG93UGF0aFB0clRhZykKICAgICAgICAgZW5kKQogZW5k
CiAKQEAgLTEwMDMsNiArMTAyNCw3IEBAIGVuZAogIyBpbiB0MS4gTWF5IGFsc28gdHJpZ2dlciBw
cm9sb2d1ZSBlbnRyeSBPU1IuCiBtYWNybyBwcm9sb2d1ZShjb2RlQmxvY2tHZXR0ZXIsIGNvZGVC
bG9ja1NldHRlciwgb3NyU2xvd1BhdGgsIHRyYWNlU2xvd1BhdGgpCiAgICAgIyBTZXQgdXAgdGhl
IGNhbGwgZnJhbWUgYW5kIGNoZWNrIGlmIHdlIHNob3VsZCBPU1IuCisgICAgdGFnUmV0dXJuQWRk
cmVzcyBzcAogICAgIHByZXNlcnZlQ2FsbGVyUENBbmRDRlIoKQogCiAgICAgaWYgRVhFQ1VUSU9O
X1RSQUNJTkcKQEAgLTEwMzcsNyArMTA1OSw3IEBAIG1hY3JvIHByb2xvZ3VlKGNvZGVCbG9ja0dl
dHRlciwgY29kZUJsb2MKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcG9wIGNmcgogICAgICAg
ICBlbmQKLSAgICAgICAgam1wIHIwCisgICAgICAgIGptcCByMCwgQ29kZUVudHJ5UHRyVGFnCiAg
ICAgLnJlY292ZXI6CiAgICAgICAgIGNvZGVCbG9ja0dldHRlcih0MSwgdDIpCiAgICAgLmNvbnRp
bnVlOgpAQCAtMTE0Myw3ICsxMTY1LDcgQEAgZWxzZQogICAgIGdsb2JhbCBfdm1FbnRyeVRvSmF2
YVNjcmlwdAogICAgIF92bUVudHJ5VG9KYXZhU2NyaXB0OgogZW5kCi0gICAgZG9WTUVudHJ5KG1h
a2VKYXZhU2NyaXB0Q2FsbCkKKyAgICBkb1ZNRW50cnkobWFrZUphdmFTY3JpcHRDYWxsLCBDb2Rl
RW50cnlQdHJUYWcsIENvZGVFbnRyeVdpdGhBcml0eUNoZWNrUHRyVGFnKQogCiAKIGlmIENfTE9P
UApAQCAtMTE1MiwxMyArMTE3NCwxNCBAQCBlbHNlCiAgICAgZ2xvYmFsIF92bUVudHJ5VG9OYXRp
dmUKICAgICBfdm1FbnRyeVRvTmF0aXZlOgogZW5kCi0gICAgZG9WTUVudHJ5KG1ha2VIb3N0RnVu
Y3Rpb25DYWxsKQorICAgIGRvVk1FbnRyeShtYWtlSG9zdEZ1bmN0aW9uQ2FsbCwgTmF0aXZlQ29k
ZVB0clRhZywgTmF0aXZlQ29kZVB0clRhZykKIAogCiBpZiBub3QgQ19MT09QCiAgICAgIyB2b2lk
IHNhbml0aXplU3RhY2tGb3JWTUltcGwoVk0qIHZtKQogICAgIGdsb2JhbCBfc2FuaXRpemVTdGFj
a0ZvclZNSW1wbAogICAgIF9zYW5pdGl6ZVN0YWNrRm9yVk1JbXBsOgorICAgICAgICB0YWdSZXR1
cm5BZGRyZXNzIHNwCiAgICAgICAgICMgV2UgbmVlZCB0aHJlZSBub24tYWxpYXNlZCBjYWxsZXIt
c2F2ZSByZWdpc3RlcnMuIFdlIGFyZSBndWFyYW50ZWVkCiAgICAgICAgICMgdGhpcyBmb3IgYTAs
IGExIGFuZCBhMiBvbiBhbGwgYXJjaGl0ZWN0dXJlcy4KICAgICAgICAgaWYgWDg2IG9yIFg4Nl9X
SU4KQEAgLTExNzYsNyArMTE5OSw3IEBAIGlmIG5vdCBDX0xPT1AKICAgICAgICAgc3RvcmVwIHpl
cm9WYWx1ZSwgW2FkZHJlc3NdCiAgICAgICAgIGFkZHAgUHRyU2l6ZSwgYWRkcmVzcwogICAgICAg
ICBicGEgc3AsIGFkZHJlc3MsIC56ZXJvRmlsbExvb3AKLSAgICAKKwogICAgIC56ZXJvRmlsbERv
bmU6CiAgICAgICAgIG1vdmUgc3AsIGFkZHJlc3MKICAgICAgICAgc3RvcmVwIGFkZHJlc3MsIFZN
OjptX2xhc3RTdGFja1RvcFt2bV0KQEAgLTExODUsNiArMTIwOCw3IEBAIGlmIG5vdCBDX0xPT1AK
ICAgICAjIFZNRW50cnlSZWNvcmQqIHZtRW50cnlSZWNvcmQoY29uc3QgRW50cnlGcmFtZSogZW50
cnlGcmFtZSkKICAgICBnbG9iYWwgX3ZtRW50cnlSZWNvcmQKICAgICBfdm1FbnRyeVJlY29yZDoK
KyAgICAgICAgdGFnUmV0dXJuQWRkcmVzcyBzcAogICAgICAgICBpZiBYODYgb3IgWDg2X1dJTgog
ICAgICAgICAgICAgbG9hZHAgNFtzcF0sIGEwCiAgICAgICAgIGVuZApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXN0LnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FzdC5yYgkocmV2aXNpb24gMjI5MzUyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXN0LnJiCSh3b3JraW5nIGNvcHkpCkBAIC05Mjks
NiArOTI5LDcgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24gPCBOb2RlCiAgICAgICAgICAgICAkYXNtLnB1
dEdsb2JhbEFubm90YXRpb24KICAgICAgICAgd2hlbiAiZW1pdCIKICAgICAgICAgICAgICRhc20u
cHV0cyAiI3tvcGVyYW5kc1swXS5kdW1wfSIKKyAgICAgICAgd2hlbiAidGFnUmV0dXJuQWRkcmVz
cyIsICJ1bnRhZ1JldHVybkFkZHJlc3MiCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJhaXNl
ICJVbmhhbmRsZWQgb3Bjb2RlICN7b3Bjb2RlfSBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IgogICAg
ICAgICBlbmQKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0
aW9ucy5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9p
bnN0cnVjdGlvbnMucmIJKHJldmlzaW9uIDIyOTM1MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYgkod29ya2luZyBjb3B5KQpAQCAtMSw0ICsxLDQg
QEAKLSMgQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMgQ29weXJpZ2h0IChDKSAyMDExLTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNDksNyArMjQ5LDEwIEBAIE1BQ1JP
X0lOU1RSVUNUSU9OUyA9CiAgICAgICJibnoiLAogICAgICAibGVhaSIsCiAgICAgICJsZWFwIiwK
LSAgICAgIm1lbWZlbmNlIgorICAgICAibWVtZmVuY2UiLAorICAgICAidGFnUmV0dXJuQWRkcmVz
cyIsCisgICAgICJ1bnRhZ1JldHVybkFkZHJlc3MiLAorICAgICAicmVtb3ZlQ29kZVB0clRhZyIK
ICAgICBdCiAKIFg4Nl9JTlNUUlVDVElPTlMgPQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L29mZmxpbmVhc20vcmlzYy5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
b2ZmbGluZWFzbS9yaXNjLnJiCShyZXZpc2lvbiAyMjkzNTIpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvb2ZmbGluZWFzbS9yaXNjLnJiCSh3b3JraW5nIGNvcHkpCkBAIC00NDgsOSArNDQ4LDE1
IEBAIGVuZAogCiBkZWYgcmlzY0xvd2VyTWlzcGxhY2VkQWRkcmVzc2VzKGxpc3QpCiAgICAgbmV3
TGlzdCA9IFtdCisgICAgaGFzQmFja2VuZFNwZWNpZmljTG93ZXJpbmcgPSBJbnN0cnVjdGlvbi5y
ZXNwb25kX3RvPyAibG93ZXJNaXNwbGFjZWRBZGRyZXNzZXMjeyRhY3RpdmVCYWNrZW5kfSIKICAg
ICBsaXN0LmVhY2ggewogICAgICAgICB8IG5vZGUgfAogICAgICAgICBpZiBub2RlLmlzX2E/IElu
c3RydWN0aW9uCisgICAgICAgICAgICBpZiBoYXNCYWNrZW5kU3BlY2lmaWNMb3dlcmluZworICAg
ICAgICAgICAgICAgIHdhc0hhbmRsZWQsIG5ld0xpc3QgPSBJbnN0cnVjdGlvbi5zZW5kKCJsb3dl
ck1pc3BsYWNlZEFkZHJlc3NlcyN7JGFjdGl2ZUJhY2tlbmR9Iiwgbm9kZSwgbmV3TGlzdCkKKyAg
ICAgICAgICAgICAgICBuZXh0IGlmIHdhc0hhbmRsZWQKKyAgICAgICAgICAgIGVuZAorCiAgICAg
ICAgICAgICBwb3N0SW5zdHJ1Y3Rpb25zID0gW10KICAgICAgICAgICAgIGFubm90YXRpb24gPSBu
b2RlLmFubm90YXRpb24KICAgICAgICAgICAgIGNhc2Ugbm9kZS5vcGNvZGUKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1B0clRhZy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1B0clRhZy5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1B0clRhZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
ODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9Qb2ludGVyUHJlcGFyYXRpb25zLmg+CisKK25hbWVz
cGFjZSBKU0MgeworCitlbnVtIFB0clRhZyA6IHVpbnRwdHJfdCB7CisgICAgTm9QdHJUYWcgPSAw
LAorICAgIE5lYXJDYWxsUHRyVGFnLAorICAgIENGdW5jdGlvblB0clRhZywKKworICAgIEJ5dGVj
b2RlUHRyVGFnLAorICAgIEJ5dGVjb2RlSGVscGVyUHRyVGFnLAorICAgIENvZGVFbnRyeVB0clRh
ZywKKyAgICBDb2RlRW50cnlXaXRoQXJpdHlDaGVja1B0clRhZywKKyAgICBFeGNlcHRpb25IYW5k
bGVyUHRyVGFnLAorICAgIEludGVybmFsRnVuY3Rpb25QdHJUYWcsCisgICAgSklUQ29kZVB0clRh
ZywKKyAgICBOYXRpdmVDb2RlUHRyVGFnLAorICAgIFNsb3dQYXRoUHRyVGFnLAorfTsKKworI2lm
ICFVU0UoUE9JTlRFUl9QUk9GSUxJTkcpCitpbmxpbmUgdWludHB0cl90IHVuaXF1ZVB0clRhZ0lE
KCkgeyByZXR1cm4gMDsgfQorCit0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+Citpbmxp
bmUgY29uc3RleHByIFB0clRhZyBwdHJUYWcoQXJndW1lbnRzJiYuLi4pIHsgcmV0dXJuIE5vUHRy
VGFnOyB9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFB0clR5cGUsIHR5cGVuYW1l
ID0gc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX3BvaW50ZXI8UHRyVHlwZT46OnZhbHVlICYmICFz
dGQ6OmlzX3NhbWU8VCwgUHRyVHlwZT46OnZhbHVlPj4KK2lubGluZSBjb25zdGV4cHIgVCB0YWdD
b2RlUHRyKFB0clR5cGUgcHRyLCBQdHJUYWcpIHsgcmV0dXJuIGJpdHdpc2VfY2FzdDxUPihwdHIp
OyB9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFB0clR5cGUsIHR5cGVuYW1lID0gc3RkOjplbmFibGVf
aWZfdDxzdGQ6OmlzX3BvaW50ZXI8UHRyVHlwZT46OnZhbHVlPj4KK2lubGluZSBjb25zdGV4cHIg
UHRyVHlwZSB0YWdDb2RlUHRyKFB0clR5cGUgcHRyLCBQdHJUYWcpIHsgcmV0dXJuIHB0cjsgfQor
Cit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBQdHJUeXBlLCB0eXBlbmFtZSA9IHN0ZDo6
ZW5hYmxlX2lmX3Q8c3RkOjppc19wb2ludGVyPFB0clR5cGU+Ojp2YWx1ZSAmJiAhc3RkOjppc19z
YW1lPFQsIFB0clR5cGU+Ojp2YWx1ZT4+CitpbmxpbmUgY29uc3RleHByIFQgdW50YWdDb2RlUHRy
KFB0clR5cGUgcHRyLCBQdHJUYWcpIHsgcmV0dXJuIGJpdHdpc2VfY2FzdDxUPihwdHIpOyB9CisK
K3RlbXBsYXRlPHR5cGVuYW1lIFB0clR5cGUsIHR5cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDxz
dGQ6OmlzX3BvaW50ZXI8UHRyVHlwZT46OnZhbHVlPj4KK2lubGluZSBjb25zdGV4cHIgUHRyVHlw
ZSB1bnRhZ0NvZGVQdHIoUHRyVHlwZSBwdHIsIFB0clRhZykgeyByZXR1cm4gcHRyOyB9CisKK3Rl
bXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFB0clR5cGUsIHR5cGVuYW1lID0gc3RkOjplbmFi
bGVfaWZfdDxzdGQ6OmlzX3BvaW50ZXI8UHRyVHlwZT46OnZhbHVlICYmICFzdGQ6OmlzX3NhbWU8
VCwgUHRyVHlwZT46OnZhbHVlPj4KK2lubGluZSBjb25zdGV4cHIgVCByZXRhZ0NvZGVQdHIoUHRy
VHlwZSBwdHIsIFB0clRhZywgUHRyVGFnKSB7IHJldHVybiBiaXR3aXNlX2Nhc3Q8VD4ocHRyKTsg
fQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBQdHJUeXBlLCB0eXBlbmFtZSA9IHN0ZDo6ZW5hYmxlX2lm
X3Q8c3RkOjppc19wb2ludGVyPFB0clR5cGU+Ojp2YWx1ZT4+CitpbmxpbmUgY29uc3RleHByIFB0
clR5cGUgcmV0YWdDb2RlUHRyKFB0clR5cGUgcHRyLCBQdHJUYWcsIFB0clRhZykgeyByZXR1cm4g
cHRyOyB9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFB0clR5cGUsIHR5cGVuYW1l
ID0gc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX3BvaW50ZXI8UHRyVHlwZT46OnZhbHVlICYmICFz
dGQ6OmlzX3NhbWU8VCwgUHRyVHlwZT46OnZhbHVlPj4KKyAgICBpbmxpbmUgY29uc3RleHByIFQg
cmVtb3ZlQ29kZVB0clRhZyhQdHJUeXBlIHB0cikgeyByZXR1cm4gYml0d2lzZV9jYXN0PFQ+KHB0
cik7IH0KKwordGVtcGxhdGU8dHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5hbWUgPSBzdGQ6OmVuYWJs
ZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWU+PgoraW5saW5lIGNvbnN0ZXhw
ciBQdHJUeXBlIHJlbW92ZUNvZGVQdHJUYWcoUHRyVHlwZSBwdHIpIHsgcmV0dXJuIHB0cjsgfQor
CisjZW5kaWYgLy8gIVVTRShQT0lOVEVSX1BST0ZJTElORykKKworfSAvLyBuYW1lc3BhY2UgSlND
CisKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSAmJiBfX2hhc19pbmNsdWRlKDxXZWJLaXRB
ZGRpdGlvbnMvUHRyVGFnU3VwcG9ydC5oPikKKyNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvUHRy
VGFnU3VwcG9ydC5oPgorI2VuZGlmCkluZGV4OiBTb3VyY2UvV1RGL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV1RGL0NoYW5nZUxvZwkocmV2aXNpb24gMjI5MzUyKQorKysgU291cmNl
L1dURi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxOC0wMy0w
NiAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CisKKyAgICAgICAgUHJlcGFyZSBMTElu
dCBjb2RlIHRvIHN1cHBvcnQgcG9pbnRlciBwcm9maWxpbmcuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODMzODcKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzM4MTk5Njc4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogd3RmL1BsYXRmb3JtLmg6CisKIDIwMTgtMDMtMDYgIENvbW1pdCBRdWV1ZSAgPGNv
bW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0
IHIyMjkzMzAuCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgJKHJldmlzaW9uIDIyOTM1MikKKysrIFNvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMjEsNiArMTAyMSwxMSBAQAog
I2RlZmluZSBFTkFCTEVfUE9JU09OIDAKICNlbmRpZgogCisjaWYgIWRlZmluZWQoVVNFX1BPSU5U
RVJfUFJPRklMSU5HKSB8fCBVU0UoSlNWQUxVRTMyXzY0KSB8fCAhRU5BQkxFKEpJVCkKKyN1bmRl
ZiBVU0VfUE9JTlRFUl9QUk9GSUxJTkcKKyNkZWZpbmUgVVNFX1BPSU5URVJfUFJPRklMSU5HIDAK
KyNlbmRpZgorCiAvKiBDU1MgU2VsZWN0b3IgSklUIENvbXBpbGVyICovCiAjaWYgIWRlZmluZWQo
RU5BQkxFX0NTU19TRUxFQ1RPUl9KSVQpCiAjaWYgKENQVShYODZfNjQpIHx8IENQVShBUk02NCkg
fHwgKENQVShBUk1fVEhVTUIyKSAmJiBQTEFURk9STShJT1MpKSkgJiYgRU5BQkxFKEpJVCkgJiYg
KE9TKERBUldJTikgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpKQo=
</data>
<flag name="review"
          id="353842"
          type_id="1"
          status="+"
          setter="jfbastien"
    />
          </attachment>
      

    </bug>

</bugzilla>