<?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>144567</bug_id>
          
          <creation_ts>2015-05-04 06:00:07 -0700</creation_ts>
          <short_desc>Move ReadableStreamJSSource.h/.cpp to ReadableJSStream.h/.cpp</short_desc>
          <delta_ts>2015-05-06 05:01:06 -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>WebCore Misc.</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="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1091360</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-05-04 06:00:07 -0700</bug_when>
    <thetext>We should refactor ReadableStreamJSSource.cpp/.h and rename those files ReadableJSStream.h/.cpp.
As part of this refactoring, ReadableStreamJSSource should be moved to ReadableStreamJS::Source.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1091367</commentid>
    <comment_count>1</comment_count>
      <attachid>252308</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-05-04 07:06:48 -0700</bug_when>
    <thetext>Created attachment 252308
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1091782</commentid>
    <comment_count>2</comment_count>
      <attachid>252308</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-05-05 09:10:41 -0700</bug_when>
    <thetext>Comment on attachment 252308
Patch

Did you use the do-webcore-rename script to do this rename? It’s pretty good at it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1091830</commentid>
    <comment_count>3</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-05-05 11:55:51 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 252308 [details]
&gt; Patch
&gt; 
&gt; Did you use the do-webcore-rename script to do this rename? It’s pretty good
&gt; at it.

Thanks for mentioning this, I was not aware of it.
I will give it a try next time I need it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1092127</commentid>
    <comment_count>4</comment_count>
      <attachid>252466</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-05-06 03:38:16 -0700</bug_when>
    <thetext>Created attachment 252466
Rebasing for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1092132</commentid>
    <comment_count>5</comment_count>
      <attachid>252466</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-06 05:01:02 -0700</bug_when>
    <thetext>Comment on attachment 252466
Rebasing for landing

Clearing flags on attachment: 252466

Committed r183866: &lt;http://trac.webkit.org/changeset/183866&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1092133</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-06 05:01:06 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>252308</attachid>
            <date>2015-05-04 07:06:48 -0700</date>
            <delta_ts>2015-05-06 03:38:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144567-20150504160533.patch</filename>
            <type>text/plain</type>
            <size>33522</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzNzQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmM3NjFkMWViNTczOTFl
ZmQ4ZjJmOWZiNWRkNGZiNDU1Njg1OWEzZi4uNWFkZjM0ZDkyYjk5MTZlNTY5YjRkMDAxZTdiNzlm
ZmNhOTRkNWZmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI4IEBACiAyMDE1LTA1LTA0ICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+IGFuZCBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CiAKKyAgICAgICAgTW92ZSBSZWFkYWJs
ZVN0cmVhbUpTU291cmNlLmgvLmNwcCB0byBSZWFkYWJsZUpTU3RyZWFtLmgvLmNwcAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0NTY3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gYWRkaXRpb24gdG8g
cmVuYW1pbmcgUmVhZGFibGVTdHJlYW1KU1NvdXJjZS5oLy5jcHAsIFJlYWRhYmxlU3RyZWFtSlNT
b3VyY2UgaXMgbm93IG1hZGUgYSBwcml2YXRlIGNsYXNzIG9mCisgICAgICAgIFJlYWRhYmxlSlNT
dHJlYW0sIGNhbGxlZCBSZWFkYWJsZUpTU3RyZWFtOjpTb3VyY2UuCisgICAgICAgIE1hZGUgc29t
ZSBtaW5vciByZWZhY3RvcmluZyAocGFzc2luZyBzb21lIEV4ZWNTdGF0ZSBieSByZWYgYW5kIG5v
dCBieSBwb2ludGVyKS4KKyAgICAgICAgTm8gZnVuY3Rpb25hbCBjaGFuZ2UsIGV4aXN0aW5nIHRl
c3RzIGNvdmVyIHRoZSBjaGFuZ2VzLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNSZWFkYWJs
ZVN0cmVhbUN1c3RvbS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvUmVhZGFibGVKU1N0cmVh
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZUpTU3RyZWFtOjpTb3VyY2U6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZUpTU3RyZWFtOjpTb3VyY2U6OlNvdXJjZSk6
CisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZUpTU3RyZWFtOjpTb3VyY2U6On5Tb3VyY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVKU1N0cmVhbTo6U291cmNlOjpnbG9iYWxPYmplY3Qp
OgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVKU1N0cmVhbTo6U291cmNlOjpzdGFydCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZUpTU3RyZWFtOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVhZGFibGVKU1N0cmVhbTo6UmVhZGFibGVKU1N0cmVhbSk6CisgICAgICAgICogYmlu
ZGluZ3MvanMvUmVhZGFibGVKU1N0cmVhbS5oOgorCisyMDE1LTA1LTA0ICBYYWJpZXIgUm9kcmln
dWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+IGFuZCBZb3Vlbm4gRmFibGV0ICA8eW91
ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKICAgICAgICAgW1N0cmVhbXMgQVBJXSBSZWZhY3Rv
ciBSZWFkYWJsZUpTU3RyZWFtIGFuZCBSZWFkYWJsZVN0cmVhbUpTU291cmNlCiAgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQzODcKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAppbmRleCAzOTUyNjc0YjdhMTM3ZmIxYjYxMmIyNzY1OWI2YmRmNzI5MzUyYTg1Li40
NjEyNjg0MWQ2YTAzZjlhNjQ3Zjc1OWJmZjUxZDUyYWRjYzhkM2FkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dApAQCAtMTE1OCw3ICsxMTU4LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRp
bmdzL2pzL0pTUmVhZGFibGVTdHJlYW1DdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNSZWFk
YWJsZVN0cmVhbUNvbnRyb2xsZXJDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNSZWFkYWJs
ZVN0cmVhbVJlYWRlckN1c3RvbS5jcHAKLSAgICBiaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbUpT
U291cmNlLmNwcAorICAgIGJpbmRpbmdzL2pzL1JlYWRhYmxlSlNTdHJlYW0uY3BwCiAgICAgYmlu
ZGluZ3MvanMvSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFja0N1c3RvbS5jcHAKICAgICBi
aW5kaW5ncy9qcy9KU1NRTFJlc3VsdFNldFJvd0xpc3RDdXN0b20uY3BwCiAgICAgYmluZGluZ3Mv
anMvSlNTUUxUcmFuc2FjdGlvbkN1c3RvbS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IDIzNTEzNDhiY2UxNjE3NjU1ZTczMmE2YWYy
MjBlYzFlMDFhOWJlNGUuLmY3NDhhZjY0MzJiNWFjZjZkNjg2ZWQ5ZDFhZTgyMjJiY2EyZTkyNzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpA
QCAtMTc0OTYsNyArMTc0OTYsNyBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXFJlYWRhYmxlU3RyZWFtSlNTb3VyY2UuY3BwIj4KKyAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXFJlYWRhYmxlSlNTdHJlYW0uY3BwIj4K
ICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRl
cnMgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRl
cnMKaW5kZXggNTgwZDVjY2QzNGRmY2NkNDFlZjBlMTQ1ZGE3MzFlMjk1Mjg2YTUyYi4uN2EyOWNk
NzFiNDdmMmNmNDBmY2JjMDQ4Y2U4YjE1OTBmNTUyNmMxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAtNDQy
NSw3ICs0NDI1LDcgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpT
UmVhZGFibGVTdHJlYW1SZWFkZXJDdXN0b20uY3BwIj4KICAgICAgIDxGaWx0ZXI+YmluZGluZ3Nc
anM8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XGJpbmRpbmdzXGpzXFJlYWRhYmxlU3RyZWFtSlNTb3VyY2UuY3BwIj4KKyAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXFJlYWRhYmxlSlNTdHJlYW0uY3BwIj4KICAgICAgIDxG
aWx0ZXI+YmluZGluZ3NcanM8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXEpTUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJh
Y2tDdXN0b20uY3BwIj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA2Y2Y5ZDk2MjE0ZjdlZjIxM2RiZTQyYjQyZjE5N2Q4MGM1OTQ5
MTA2Li5lOTQ5YTNjODQ5NjJiYjE1MGM2NzEyZGFmMzI1MTNiZTgwYTQ1MDcxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDc0
LDggKzE0NzQsOCBAQAogCQk0MThBMDZEMTEzM0MwNEQ1MDBDRDM3OUMgLyogRXZlbnREaXNwYXRj
aGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
OEEwNkNGMTMzQzA0RDUwMENEMzc5QyAvKiBFdmVudERpc3BhdGNoZXIuY3BwICovOyB9OwogCQk0
MThGODgwNDBGRjk1N0FFMDA4MEYwNDUgLyogSlNBYnN0cmFjdFdvcmtlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MThGODgwMjBGRjk1N0FFMDA4
MEYwNDUgLyogSlNBYnN0cmFjdFdvcmtlci5jcHAgKi87IH07CiAJCTQxOEY4ODA1MEZGOTU3QUYw
MDgwRjA0NSAvKiBKU0Fic3RyYWN0V29ya2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0MThGODgwMzBGRjk1N0FFMDA4MEYwNDUgLyogSlNBYnN0cmFj
dFdvcmtlci5oICovOyB9OwotCQk0MTk4QkRGMDFBODExNDIyMDBCMjJGQjUgLyogUmVhZGFibGVT
dHJlYW1KU1NvdXJjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MTk4QkRFRTFBODExMjM2MDBCMjJGQjUgLyogUmVhZGFibGVTdHJlYW1KU1NvdXJj
ZS5jcHAgKi87IH07Ci0JCTQxOThCREYxMUE4MTE0MzEwMEIyMkZCNSAvKiBSZWFkYWJsZVN0cmVh
bUpTU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MTk4QkRFRjFBODExMjM2MDBCMjJGQjUgLyogUmVhZGFibGVTdHJlYW1KU1NvdXJjZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTQxOThCREYw
MUE4MTE0MjIwMEIyMkZCNSAvKiBSZWFkYWJsZUpTU3RyZWFtLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxOThCREVFMUE4MTEyMzYwMEIyMkZCNSAv
KiBSZWFkYWJsZUpTU3RyZWFtLmNwcCAqLzsgfTsKKwkJNDE5OEJERjExQTgxMTQzMTAwQjIyRkI1
IC8qIFJlYWRhYmxlSlNTdHJlYW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxOThCREVGMUE4MTEyMzYwMEIyMkZCNSAvKiBSZWFkYWJsZUpTU3RyZWFt
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDE5
QkMyREUxNjg1MzI5OTAwRDY0RDZEIC8qIFZpc2l0ZWRMaW5rU3RhdGUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE5QkMyREMxNjg1MzI5OTAwRDY0
RDZEIC8qIFZpc2l0ZWRMaW5rU3RhdGUuY3BwICovOyB9OwogCQk0MTlCQzJERjE2ODUzMjk5MDBE
NjRENkQgLyogVmlzaXRlZExpbmtTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDE5QkMyREQxNjg1MzI5OTAwRDY0RDZEIC8qIFZpc2l0ZWRMaW5r
U3RhdGUuaCAqLzsgfTsKIAkJNDE5RkFGQUUxQUJBQkQwODAwNUI4MjhCIC8qIFJlYWRhYmxlU3Ry
ZWFtUmVhZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQxOUZBRkFCMUFCQUJDRDUwMDVCODI4QiAvKiBSZWFkYWJsZVN0cmVhbVJlYWRlci5jcHAg
Ki87IH07CkBAIC04NjEwLDggKzg2MTAsOCBAQAogCQk0MThBMDZDRjEzM0MwNEQ1MDBDRDM3OUMg
LyogRXZlbnREaXNwYXRjaGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEV2ZW50RGlzcGF0Y2hlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQx
OEY4ODAyMEZGOTU3QUUwMDgwRjA0NSAvKiBKU0Fic3RyYWN0V29ya2VyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQWJzdHJhY3RXb3JrZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MThGODgwMzBGRjk1N0FFMDA4MEYwNDUgLyogSlNBYnN0
cmFjdFdvcmtlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0Fic3RyYWN0
V29ya2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQxOThCREVFMUE4MTEyMzYw
MEIyMkZCNSAvKiBSZWFkYWJsZVN0cmVhbUpTU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtSlNTb3VyY2UuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk0MTk4QkRFRjFBODExMjM2MDBCMjJGQjUgLyogUmVhZGFibGVT
dHJlYW1KU1NvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFkYWJs
ZVN0cmVhbUpTU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxOThCREVF
MUE4MTEyMzYwMEIyMkZCNSAvKiBSZWFkYWJsZUpTU3RyZWFtLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlYWRhYmxlSlNTdHJlYW0uY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0MTk4QkRFRjFBODExMjM2MDBCMjJGQjUgLyogUmVhZGFibGVKU1N0
cmVhbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFkYWJsZUpTU3RyZWFt
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxOUJDMkRDMTY4NTMyOTkwMEQ2NEQ2
RCAvKiBWaXNpdGVkTGlua1N0YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFZpc2l0ZWRMaW5rU3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0MTlCQzJERDE2ODUzMjk5MDBENjRENkQgLyogVmlzaXRlZExpbmtTdGF0ZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaXNpdGVkTGlua1N0YXRlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxOUZBRkFCMUFCQUJDRDUwMDVCODI4QiAvKiBSZWFkYWJsZVN0
cmVhbVJlYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWFk
YWJsZVN0cmVhbVJlYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMTE2
Niw4ICsyMTE2Niw4IEBACiAJCQkJRTFDMzZEMzIwRUIwQTA5NDAwNzQxMEJDIC8qIEpTV29ya2Vy
R2xvYmFsU2NvcGVCYXNlLmNwcCAqLywKIAkJCQlFMUMzNkQzMzBFQjBBMDk0MDA3NDEwQkMgLyog
SlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuaCAqLywKIAkJCQk0MTE4OUVGODFBRDgyMzNDMDBCOTBB
MEQgLyogSlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJDdXN0b20uY3BwICovLAotCQkJCTQxOThC
REVFMUE4MTEyMzYwMEIyMkZCNSAvKiBSZWFkYWJsZVN0cmVhbUpTU291cmNlLmNwcCAqLywKLQkJ
CQk0MTk4QkRFRjFBODExMjM2MDBCMjJGQjUgLyogUmVhZGFibGVTdHJlYW1KU1NvdXJjZS5oICov
LAorCQkJCTQxOThCREVFMUE4MTEyMzYwMEIyMkZCNSAvKiBSZWFkYWJsZUpTU3RyZWFtLmNwcCAq
LywKKwkJCQk0MTk4QkRFRjFBODExMjM2MDBCMjJGQjUgLyogUmVhZGFibGVKU1N0cmVhbS5oICov
LAogCQkJCUJDQTM3OEJBMEQxNUY2NDIwMEI3OTNENiAvKiBTY2hlZHVsZWRBY3Rpb24uY3BwICov
LAogCQkJCUJDQTM3OEJCMEQxNUY2NDIwMEI3OTNENiAvKiBTY2hlZHVsZWRBY3Rpb24uaCAqLywK
IAkJCQk0MUYxRDIxRTBFRjM1QzJBMDBEQTg3NTMgLyogU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmNw
cCAqLywKQEAgLTI2NzQxLDcgKzI2NzQxLDcgQEAKIAkJCQkwNzA5RDc4RjFBRTU1NTU0MDA0RTQy
RjggLyogV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODRCNkI5
NzgxMjBGMTNFNTAwQjhFRkFGIC8qIFNWR1BhdGhTZWdMaXN0U291cmNlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk4M0MxRDQzNTE3OEQ1QUI1MDAxNDFFNjggLyogU1ZHUGF0aFNlZ01vdmV0b0Ficy5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJNDE5OEJERjExQTgxMTQzMTAwQjIyRkI1IC8qIFJlYWRhYmxl
U3RyZWFtSlNTb3VyY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxOThCREYxMUE4MTE0MzEwMEIy
MkZCNSAvKiBSZWFkYWJsZUpTU3RyZWFtLmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0MxRDQzNjE3
OEQ1QUI1MDAxNDFFNjggLyogU1ZHUGF0aFNlZ01vdmV0b1JlbC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMDgyREU0MkQxMjkyNjIxNjAwRDkyM0RGIC8qIFNWR1BhdGhTZWdXaXRoQ29udGV4dC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJODQzMDBCRDgxMjBDOUFENDAwMjE5NTRBIC8qIFNWR1BhdGhTb3Vy
Y2UuaCBpbiBIZWFkZXJzICovLApAQCAtMzAyNDgsNyArMzAyNDgsNyBAQAogCQkJCUZCNDg0RjRD
MTcxRjgyMUUwMDA0MDc1NSAvKiBUcmFuc2Zvcm1GdW5jdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNDlFOTExQ0YwRUY4NkQ0NzAwOUQwQ0FGIC8qIFRyYW5zZm9ybU9wZXJhdGlvbnMuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNURCMUJDNkIxMDcxNUE2NDAwRUZBQTQ5IC8qIFRyYW5zZm9y
bVNvdXJjZUxpYnhzbHQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNDE5OEJERjAxQTgxMTQyMjAw
QjIyRkI1IC8qIFJlYWRhYmxlU3RyZWFtSlNTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
NDE5OEJERjAxQTgxMTQyMjAwQjIyRkI1IC8qIFJlYWRhYmxlSlNTdHJlYW0uY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNDk0NUJGRDMxM0NGODA5MDAwQ0MzQjM4IC8qIFRyYW5zZm9ybVN0YXRlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUUxN0I0OTE1MTZBOUIwOTQwMDFDODgzOSAvKiBUcmFuc2l0
aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDlFOTExRDEwRUY4NkQ0NzAwOUQwQ0FG
IC8qIFRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCmluZGV4
IDlhNjJkZDZmMTJmMGExZmFhNTBlMjNhNjEzMWIzMGMzODdlN2RiMDkuLjhhNWVhZTdmMGRmYWFl
OTA3NDFlOTUwMTY0NjBiMTQwMzBjNGQ0MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcApAQCAtMTE1LDcgKzExNSw3IEBACiAjaW5j
bHVkZSAiSlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpT
UmVhZGFibGVTdHJlYW1DdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTUmVhZGFibGVTdHJlYW1SZWFk
ZXJDdXN0b20uY3BwIgotI2luY2x1ZGUgIlJlYWRhYmxlU3RyZWFtSlNTb3VyY2UuY3BwIgorI2lu
Y2x1ZGUgIlJlYWRhYmxlSlNTdHJlYW0uY3BwIgogI2VuZGlmCiAjaW5jbHVkZSAiSlNSZXF1ZXN0
QW5pbWF0aW9uRnJhbWVDYWxsYmFja0N1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNTUUxSZXN1bHRT
ZXRSb3dMaXN0Q3VzdG9tLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyQ3VzdG9tLmNwcAppbmRleCA4
NDZhYzcwZDk1MzMzZDg2MDg4OTMyOTJiZWMwMGFhZmQ3ZTcwNTdmLi4xYWYzMTgyYWRlYzU0ODU4
MDdkNjM1YjQ2MjBiNGFjNDcxMzhlZmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlckN1c3RvbS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJDdXN0b20uY3Bw
CkBAIC0zNCw3ICszNCw3IEBACiAKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRl
ICJOb3RJbXBsZW1lbnRlZC5oIgotI2luY2x1ZGUgIlJlYWRhYmxlU3RyZWFtSlNTb3VyY2UuaCIK
KyNpbmNsdWRlICJSZWFkYWJsZUpTU3RyZWFtLmgiCiAjaW5jbHVkZSA8cnVudGltZS9FcnJvci5o
PgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVhbUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtQ3VzdG9tLmNwcAppbmRleCAxMWEwMTUzOTRiNGFmZmE4
MGE3Y2I3NTNiNzBjNWU5OTMzN2I2MDNiLi5iYzE4Njc5MWViYjNjNTAwOWVhZjg3MjE0MTk2ZjQy
NjVhOGY4NDUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRh
YmxlU3RyZWFtQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1Jl
YWRhYmxlU3RyZWFtQ3VzdG9tLmNwcApAQCAtMzYsOCArMzYsOCBAQAogI2luY2x1ZGUgIkpTRE9N
QmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZS5oIgogI2luY2x1ZGUgIkpTUmVhZGFi
bGVTdHJlYW1SZWFkZXIuaCIKKyNpbmNsdWRlICJSZWFkYWJsZUpTU3RyZWFtLmgiCiAjaW5jbHVk
ZSAiUmVhZGFibGVTdHJlYW0uaCIKLSNpbmNsdWRlICJSZWFkYWJsZVN0cmVhbUpTU291cmNlLmgi
CiAjaW5jbHVkZSAiUmVhZGFibGVTdHJlYW1SZWFkZXIuaCIKICNpbmNsdWRlIDxydW50aW1lL0Vy
cm9yLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtUmVhZGVyQ3VzdG9tLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1SZWFkZXJDdXN0b20u
Y3BwCmluZGV4IGU0YWRkYTcwMTU5MDdlMGVkMzdiMzAzZThlMmMxNTRmNzQ4MDg3NDUuLjQ4ZGI1
NGY5MGNiMmVhM2E3ZTgyYmE5ZWFiOTBlNDY1MTg3YzY1MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1SZWFkZXJDdXN0b20uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1SZWFkZXJDdXN0b20u
Y3BwCkBAIC0zNSw3ICszNSw3IEBACiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1
ZGUgIkpTRE9NUHJvbWlzZS5oIgogI2luY2x1ZGUgIkpTUmVhZGFibGVTdHJlYW0uaCIKLSNpbmNs
dWRlICJSZWFkYWJsZVN0cmVhbUpTU291cmNlLmgiCisjaW5jbHVkZSAiUmVhZGFibGVKU1N0cmVh
bS5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0
cm95ZWQuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFi
bGVKU1N0cmVhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZUpTU3Ry
ZWFtLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wMDk5YTliZThkOTE1YmU5MzY3YTEwMTMxODhjNDUyNGMxOTEx
YTlhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFi
bGVKU1N0cmVhbS5jcHAKQEAgLTAsMCArMSwxNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTUgQ2Fub24gSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQsIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgcmVxdWlyZWQgdG8gYmUgbWV0OgorICoK
KyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQ2Fu
b24gSW5jLiBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20g
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIENBTk9OIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBDQU5PTiBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwKKyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZWFkYWJsZUpTU3RyZWFtLmgiCisKKyNpZiBF
TkFCTEUoU1RSRUFNU19BUEkpCisKKyNpbmNsdWRlICJET01XcmFwcGVyV29ybGQuaCIKKyNpbmNs
dWRlICJKU0RPTVByb21pc2UuaCIKKyNpbmNsdWRlICJKU1JlYWRhYmxlU3RyZWFtLmgiCisjaW5j
bHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0
LmgiCisjaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSlNW
YWx1ZUlubGluZXMuaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTU3RyaW5nLmg+CisjaW5jbHVkZSA8
cnVudGltZS9TdHJ1Y3R1cmVJbmxpbmVzLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBzZXRJbnRlcm5hbFNsb3RUb09iamVjdChFeGVjU3Rh
dGUqIGV4ZWMsIEpTVmFsdWUgb2JqZWN0VmFsdWUsIFByaXZhdGVOYW1lJiBuYW1lLCBKU1ZhbHVl
IHZhbHVlKQoreworICAgIEpTT2JqZWN0KiBvYmplY3QgPSBvYmplY3RWYWx1ZS50b09iamVjdChl
eGVjKTsKKyAgICBQdXRQcm9wZXJ0eVNsb3QgcHJvcGVydHlTbG90KG9iamVjdFZhbHVlKTsKKyAg
ICBvYmplY3QtPnB1dChvYmplY3QsIGV4ZWMsIElkZW50aWZpZXI6OmZyb21VaWQobmFtZSksIHZh
bHVlLCBwcm9wZXJ0eVNsb3QpOworfQorCitKU1ZhbHVlIGdldEludGVybmFsU2xvdEZyb21PYmpl
Y3QoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIG9iamVjdFZhbHVlLCBQcml2YXRlTmFtZSYgbmFt
ZSkKK3sKKyAgICBKU09iamVjdCogb2JqZWN0ID0gb2JqZWN0VmFsdWUudG9PYmplY3QoZXhlYyk7
CisgICAgUHJvcGVydHlTbG90IHByb3BlcnR5U2xvdChvYmplY3RWYWx1ZSk7CisKKyAgICBJZGVu
dGlmaWVyIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21VaWQobmFtZSk7CisgICAgaWYg
KCFvYmplY3QtPmdldE93blByb3BlcnR5U2xvdChvYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwg
cHJvcGVydHlTbG90KSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWUoKTsKKyAgICByZXR1cm4gcHJv
cGVydHlTbG90LmdldFZhbHVlKGV4ZWMsIHByb3BlcnR5TmFtZSk7Cit9CisKK3N0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBnZXRQcm9wZXJ0eUZyb21PYmplY3QoRXhlY1N0YXRlKiBleGVjLCBKU09iamVj
dCogb2JqZWN0LCBjb25zdCBjaGFyKiBpZGVudGlmaWVyKQoreworICAgIHJldHVybiBvYmplY3Qt
PmdldChleGVjLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGV4ZWMsIGlkZW50aWZpZXIpKTsKK30K
Kworc3RhdGljIGlubGluZSBKU1ZhbHVlIGNhbGxGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpT
VmFsdWUganNGdW5jdGlvbiwgSlNWYWx1ZSB0aGlzVmFsdWUsIGNvbnN0IEFyZ0xpc3QmIGFyZ3Vt
ZW50cywgSlNWYWx1ZSogZXhjZXB0aW9uKQoreworICAgIENhbGxEYXRhIGNhbGxEYXRhOworICAg
IENhbGxUeXBlIGNhbGxUeXBlID0gZ2V0Q2FsbERhdGEoanNGdW5jdGlvbiwgY2FsbERhdGEpOwor
ICAgIHJldHVybiBjYWxsKGV4ZWMsIGpzRnVuY3Rpb24sIGNhbGxUeXBlLCBjYWxsRGF0YSwgdGhp
c1ZhbHVlLCBhcmd1bWVudHMsIGV4Y2VwdGlvbik7Cit9CisKK1JlZjxSZWFkYWJsZUpTU3RyZWFt
OjpTb3VyY2U+IFJlYWRhYmxlSlNTdHJlYW06OlNvdXJjZTo6Y3JlYXRlKEV4ZWNTdGF0ZSYgZXhl
YykKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTb3VyY2UoZXhlYykpOworfQorCitSZWFk
YWJsZUpTU3RyZWFtOjpTb3VyY2U6OlNvdXJjZShFeGVjU3RhdGUmIGV4ZWMpCit7CisgICAgQVNT
RVJUX1dJVEhfTUVTU0FHRSghZXhlYy5hcmd1bWVudENvdW50KCkgfHwgZXhlYy5hcmd1bWVudCgw
KS5pc09iamVjdCgpLCAiQ2FsbGVyIG9mIFJlYWRhYmxlSlNTdHJlYW06OlNvdXJjZSBjb25zdHJ1
Y3RvciBzaG91bGQgZW5zdXJlIHRoYXQgcGFzc2VkIGFyZ3VtZW50IGlmIGFueSBpcyBhbiBvYmpl
Y3QuIik7CisgICAgSlNPYmplY3QqIHNvdXJjZSA9ICBleGVjLmFyZ3VtZW50Q291bnQoKSA/IGV4
ZWMuYXJndW1lbnQoMCkuZ2V0T2JqZWN0KCkgOiBKU0ZpbmFsT2JqZWN0OjpjcmVhdGUoZXhlYy52
bSgpLCBKU0ZpbmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy52bSgpLCBleGVjLmNhbGxl
ZSgpLT5nbG9iYWxPYmplY3QoKSwganNOdWxsKCksIDEpKTsKKyAgICBtX3NvdXJjZS5zZXQoZXhl
Yy52bSgpLCBzb3VyY2UpOworfQorCitSZWFkYWJsZUpTU3RyZWFtOjpTb3VyY2U6On5Tb3VyY2Uo
KQoreworICAgIGlmIChtX2NvbnRyb2xsZXIpCisgICAgICAgIG1fY29udHJvbGxlci5nZXQoKS0+
aW1wbCgpLnJlc2V0U3RyZWFtKCk7Cit9CisKK3N0YXRpYyB2b2lkIHN0YXJ0UmVhZGFibGVTdHJl
YW1Bc3luYyhSZWFkYWJsZVN0cmVhbSYgcmVhZGFibGVTdHJlYW0pCit7CisgICAgUmVmUHRyPFJl
YWRhYmxlU3RyZWFtPiBzdHJlYW0gPSAmcmVhZGFibGVTdHJlYW07CisgICAgc3RyZWFtLT5zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCktPnBvc3RUYXNrKFtzdHJlYW1dKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmKSB7CisgICAgICAgIHN0cmVhbS0+c3RhcnQoKTsKKyAgICB9KTsKK30KKworSlNET01H
bG9iYWxPYmplY3QqIFJlYWRhYmxlSlNTdHJlYW06OlNvdXJjZTo6Z2xvYmFsT2JqZWN0KCkKK3sK
KyAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KG1fc291cmNlLT5n
bG9iYWxPYmplY3QoKSk7Cit9CisKK3ZvaWQgUmVhZGFibGVKU1N0cmVhbTo6U291cmNlOjpzdGFy
dChFeGVjU3RhdGUmIGV4ZWMsIFJlYWRhYmxlSlNTdHJlYW0mIHJlYWRhYmxlU3RyZWFtKQorewor
ICAgIEpTTG9ja0hvbGRlciBsb2NrKCZleGVjKTsKKworICAgIFJlZjxSZWFkYWJsZVN0cmVhbUNv
bnRyb2xsZXI+IGNvbnRyb2xsZXIgPSBSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXI6OmNyZWF0ZShy
ZWFkYWJsZVN0cmVhbSk7CisgICAgbV9jb250cm9sbGVyLnNldChleGVjLnZtKCksIGpzRHluYW1p
Y0Nhc3Q8SlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIqPih0b0pTKCZleGVjLCBnbG9iYWxPYmpl
Y3QoKSwgY29udHJvbGxlcikpKTsKKworICAgIEpTVmFsdWUgc3RhcnRGdW5jdGlvbiA9IGdldFBy
b3BlcnR5RnJvbU9iamVjdCgmZXhlYywgbV9zb3VyY2UuZ2V0KCksICJzdGFydCIpOworICAgIGlm
ICghc3RhcnRGdW5jdGlvbi5pc0Z1bmN0aW9uKCkpIHsKKyAgICAgICAgaWYgKCFzdGFydEZ1bmN0
aW9uLmlzVW5kZWZpbmVkKCkpCisgICAgICAgICAgICB0aHJvd1ZNRXJyb3IoJmV4ZWMsIGNyZWF0
ZVR5cGVFcnJvcigmZXhlYywgQVNDSUlMaXRlcmFsKCJSZWFkYWJsZVN0cmVhbSBjb25zdHJ1Y3Rv
ciBvYmplY3Qgc3RhcnQgcHJvcGVydHkgc2hvdWxkIGJlIGEgZnVuY3Rpb24uIikpKTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgc3RhcnRSZWFkYWJsZVN0cmVhbUFzeW5jKHJlYWRhYmxlU3Ry
ZWFtKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVy
IGFyZ3VtZW50czsKKyAgICBhcmd1bWVudHMuYXBwZW5kKG1fY29udHJvbGxlci5nZXQoKSk7CisK
KyAgICBKU1ZhbHVlIGV4Y2VwdGlvbjsKKyAgICBjYWxsRnVuY3Rpb24oJmV4ZWMsIHN0YXJ0RnVu
Y3Rpb24sIG1fc291cmNlLmdldCgpLCBhcmd1bWVudHMsICZleGNlcHRpb24pOworCisgICAgaWYg
KGV4Y2VwdGlvbikgeworICAgICAgICB0aHJvd1ZNRXJyb3IoJmV4ZWMsIGV4Y2VwdGlvbik7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IGhhbmRsaW5n
IHByb21pc2UgYXMgcmVzdWx0IG9mIGNhbGxpbmcgc3RhcnQgZnVuY3Rpb24uCisgICAgc3RhcnRS
ZWFkYWJsZVN0cmVhbUFzeW5jKHJlYWRhYmxlU3RyZWFtKTsKK30KKworUmVmPFJlYWRhYmxlSlNT
dHJlYW0+IFJlYWRhYmxlSlNTdHJlYW06OmNyZWF0ZShFeGVjU3RhdGUmIGV4ZWMsIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCit7CisgICAgUmVmPFJlYWRh
YmxlSlNTdHJlYW06OlNvdXJjZT4gc291cmNlID0gUmVhZGFibGVKU1N0cmVhbTo6U291cmNlOjpj
cmVhdGUoZXhlYyk7CisgICAgUmVmPFJlYWRhYmxlSlNTdHJlYW0+IHJlYWRhYmxlU3RyZWFtID0g
YWRvcHRSZWYoKm5ldyBSZWFkYWJsZUpTU3RyZWFtKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIFdU
Rjo6bW92ZShzb3VyY2UpKSk7CisKKyAgICBzdGF0aWNfY2FzdDxSZWFkYWJsZUpTU3RyZWFtOjpT
b3VyY2UmPihyZWFkYWJsZVN0cmVhbS0+c291cmNlKCkpLnN0YXJ0KGV4ZWMsIHJlYWRhYmxlU3Ry
ZWFtLmdldCgpKTsKKyAgICByZXR1cm4gcmVhZGFibGVTdHJlYW07Cit9CisKK1JlZjxSZWFkYWJs
ZVN0cmVhbVJlYWRlcj4gUmVhZGFibGVKU1N0cmVhbTo6Y3JlYXRlUmVhZGVyKCkKK3sKKyAgICBy
ZXR1cm4gUmVhZGVyOjpjcmVhdGUoKnRoaXMpOworfQorCitSZWFkYWJsZUpTU3RyZWFtOjpSZWFk
YWJsZUpTU3RyZWFtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQsIFJlZjxSZWFkYWJsZUpTU3RyZWFtOjpTb3VyY2U+JiYgc291cmNlKQorICAgIDogUmVhZGFi
bGVTdHJlYW0oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgV1RGOjptb3ZlKHNvdXJjZSkpCit7Cit9
CisKK1JlZjxSZWFkYWJsZUpTU3RyZWFtOjpSZWFkZXI+IFJlYWRhYmxlSlNTdHJlYW06OlJlYWRl
cjo6Y3JlYXRlKFJlYWRhYmxlSlNTdHJlYW0mIHN0cmVhbSkKK3sKKyAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBSZWFkZXIoc3RyZWFtKSk7Cit9CisKK1JlYWRhYmxlSlNTdHJlYW06OlJlYWRlcjo6
UmVhZGVyKFJlYWRhYmxlSlNTdHJlYW0mIHJlYWRhYmxlU3RyZWFtKQorICAgIDogUmVhZGFibGVT
dHJlYW1SZWFkZXIocmVhZGFibGVTdHJlYW0pCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFk
YWJsZUpTU3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZUpTU3Ry
ZWFtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOTY3MTBjZDEzNjM5MDA4MDYyYjAxMTAwMmNhZTY1ZTgwNTA5YjE0
NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxl
SlNTdHJlYW0uaApAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyTzE1IENh
bm9uIEluYy4gMjAxNQorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuIDIwMTUKKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCwgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSByZXF1aXJlZCB0byBiZSBtZXQ6
CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBv
ZiBDYW5vbiBJbmMuIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAg
ZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQ0FOT04gSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIENBTk9OIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAor
ICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBSZWFkYWJsZUpTU3RyZWFtX2gKKyNkZWZpbmUgUmVhZGFibGVKU1N0cmVhbV9o
CisKKyNpZiBFTkFCTEUoU1RSRUFNU19BUEkpCisKKyNpbmNsdWRlICJKU1JlYWRhYmxlU3RyZWFt
Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIlJlYWRhYmxlU3RyZWFtLmgiCisjaW5jbHVkZSAiUmVh
ZGFibGVTdHJlYW1SZWFkZXIuaCIKKyNpbmNsdWRlICJSZWFkYWJsZVN0cmVhbVNvdXJjZS5oIgor
I2luY2x1ZGUgPGhlYXAvU3Ryb25nLmg+CisjaW5jbHVkZSA8aGVhcC9TdHJvbmdJbmxpbmVzLmg+
CisjaW5jbHVkZSA8cnVudGltZS9KU0NKU1ZhbHVlLmg+CisjaW5jbHVkZSA8cnVudGltZS9Qcml2
YXRlTmFtZS5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBSZWFkYWJsZUpTU3RyZWFtOiBwdWJsaWMgUmVhZGFibGVTdHJlYW0geworcHVibGlj
OgorICAgIHN0YXRpYyBSZWY8UmVhZGFibGVKU1N0cmVhbT4gY3JlYXRlKEpTQzo6RXhlY1N0YXRl
JiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOworICAgIHZpcnR1YWwgUmVmPFJlYWRhYmxlU3Ry
ZWFtUmVhZGVyPiBjcmVhdGVSZWFkZXIoKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICBjbGFz
cyBSZWFkZXI6IHB1YmxpYyBSZWFkYWJsZVN0cmVhbVJlYWRlciB7CisgICAgcHVibGljOgorICAg
ICAgICBzdGF0aWMgUmVmPFJlYWRlcj4gY3JlYXRlKFJlYWRhYmxlSlNTdHJlYW0mKTsKKyAgICBw
cml2YXRlOgorICAgICAgICBleHBsaWNpdCBSZWFkZXIoUmVhZGFibGVKU1N0cmVhbSYpOworICAg
IH07CisKKyAgICBjbGFzcyBTb3VyY2U6IHB1YmxpYyBSZWFkYWJsZVN0cmVhbVNvdXJjZSB7Cisg
ICAgcHVibGljOgorICAgICAgICBzdGF0aWMgUmVmPFNvdXJjZT4gY3JlYXRlKEpTQzo6RXhlY1N0
YXRlJik7CisgICAgICAgIH5Tb3VyY2UoKTsKKworICAgICAgICBKU0RPTUdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KCk7CisgICAgICAgIHZvaWQgc3RhcnQoSlNDOjpFeGVjU3RhdGUmLCBSZWFk
YWJsZUpTU3RyZWFtJik7CisKKyAgICBwcml2YXRlOgorICAgICAgICBTb3VyY2UoSlNDOjpFeGVj
U3RhdGUmKTsKKworICAgICAgICAvLyBPYmplY3QgcGFzc2VkIHRvIGNvbnN0cnVjdG9yLgorICAg
ICAgICBKU0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0PiBtX3NvdXJjZTsKKworICAgICAgICBKU0M6
OlN0cm9uZzxKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlcj4gbV9jb250cm9sbGVyOworICAgIH07
CisKKyAgICBSZWFkYWJsZUpTU3RyZWFtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZWY8UmVh
ZGFibGVKU1N0cmVhbTo6U291cmNlPiYmKTsKK307CisKK3ZvaWQgc2V0SW50ZXJuYWxTbG90VG9P
YmplY3QoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHJpdmF0ZU5hbWUmLCBK
U0M6OkpTVmFsdWUpOworSlNDOjpKU1ZhbHVlIGdldEludGVybmFsU2xvdEZyb21PYmplY3QoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHJpdmF0ZU5hbWUmKTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFNUUkVBTVNfQVBJKQorCisjZW5k
aWYgLy8gUmVhZGFibGVKU1N0cmVhbV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9SZWFkYWJsZVN0cmVhbUpTU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1JlYWRhYmxlU3RyZWFtSlNTb3VyY2UuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAyMjIwZWNkMTMxY2EyMjQxZmIxMTA4YTJjNTlkOTlkMjhiNGE4YzBkLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtSlNTb3VyY2UuY3BwCisrKyAvZGV2L251bGwKQEAgLTEs
MTc2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQ2Fub24gSW5jLgotICogQ29w
eXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgcmVxdWlyZWQgdG8gYmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQ2Fub24gSW5jLiBub3IgdGhlIG5hbWVz
IG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIENBTk9OIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBDQU5PTiBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IKLSAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKLSAqIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCi0gKiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUgotICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKLSAqIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNp
bmNsdWRlICJSZWFkYWJsZVN0cmVhbUpTU291cmNlLmgiCi0KLSNpZiBFTkFCTEUoU1RSRUFNU19B
UEkpCi0KLSNpbmNsdWRlICJET01XcmFwcGVyV29ybGQuaCIKLSNpbmNsdWRlICJKU0RPTVByb21p
c2UuaCIKLSNpbmNsdWRlICJKU1JlYWRhYmxlU3RyZWFtLmgiCi0jaW5jbHVkZSAiTm90SW1wbGVt
ZW50ZWQuaCIKLSNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCi0jaW5jbHVkZSA8
cnVudGltZS9FcnJvci5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaD4K
LSNpbmNsdWRlIDxydW50aW1lL0pTU3RyaW5nLmg+Ci0jaW5jbHVkZSA8cnVudGltZS9TdHJ1Y3R1
cmVJbmxpbmVzLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBKU0M7Ci0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotdm9pZCBzZXRJbnRlcm5hbFNsb3RUb09iamVjdChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFs
dWUgb2JqZWN0VmFsdWUsIFByaXZhdGVOYW1lJiBuYW1lLCBKU1ZhbHVlIHZhbHVlKQotewotICAg
IEpTT2JqZWN0KiBvYmplY3QgPSBvYmplY3RWYWx1ZS50b09iamVjdChleGVjKTsKLSAgICBQdXRQ
cm9wZXJ0eVNsb3QgcHJvcGVydHlTbG90KG9iamVjdFZhbHVlKTsKLSAgICBvYmplY3QtPnB1dChv
YmplY3QsIGV4ZWMsIElkZW50aWZpZXI6OmZyb21VaWQobmFtZSksIHZhbHVlLCBwcm9wZXJ0eVNs
b3QpOwotfQotCi1KU1ZhbHVlIGdldEludGVybmFsU2xvdEZyb21PYmplY3QoRXhlY1N0YXRlKiBl
eGVjLCBKU1ZhbHVlIG9iamVjdFZhbHVlLCBQcml2YXRlTmFtZSYgbmFtZSkKLXsKLSAgICBKU09i
amVjdCogb2JqZWN0ID0gb2JqZWN0VmFsdWUudG9PYmplY3QoZXhlYyk7Ci0gICAgUHJvcGVydHlT
bG90IHByb3BlcnR5U2xvdChvYmplY3RWYWx1ZSk7Ci0KLSAgICBJZGVudGlmaWVyIHByb3BlcnR5
TmFtZSA9IElkZW50aWZpZXI6OmZyb21VaWQobmFtZSk7Ci0gICAgaWYgKCFvYmplY3QtPmdldE93
blByb3BlcnR5U2xvdChvYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgcHJvcGVydHlTbG90KSkK
LSAgICAgICAgcmV0dXJuIEpTVmFsdWUoKTsKLSAgICByZXR1cm4gcHJvcGVydHlTbG90LmdldFZh
bHVlKGV4ZWMsIHByb3BlcnR5TmFtZSk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBnZXRQ
cm9wZXJ0eUZyb21PYmplY3QoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogb2JqZWN0LCBjb25z
dCBjaGFyKiBpZGVudGlmaWVyKQotewotICAgIHJldHVybiBvYmplY3QtPmdldChleGVjLCBJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKGV4ZWMsIGlkZW50aWZpZXIpKTsKLX0KLQotc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGNhbGxGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUganNGdW5jdGlv
biwgSlNWYWx1ZSB0aGlzVmFsdWUsIGNvbnN0IEFyZ0xpc3QmIGFyZ3VtZW50cywgSlNWYWx1ZSog
ZXhjZXB0aW9uKQotewotICAgIENhbGxEYXRhIGNhbGxEYXRhOwotICAgIENhbGxUeXBlIGNhbGxU
eXBlID0gZ2V0Q2FsbERhdGEoanNGdW5jdGlvbiwgY2FsbERhdGEpOwotICAgIHJldHVybiBjYWxs
KGV4ZWMsIGpzRnVuY3Rpb24sIGNhbGxUeXBlLCBjYWxsRGF0YSwgdGhpc1ZhbHVlLCBhcmd1bWVu
dHMsIGV4Y2VwdGlvbik7Ci19Ci0KLVJlZjxSZWFkYWJsZVN0cmVhbUpTU291cmNlPiBSZWFkYWJs
ZVN0cmVhbUpTU291cmNlOjpjcmVhdGUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMpCi17Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgUmVhZGFibGVTdHJlYW1KU1NvdXJjZShleGVjKSk7Ci19Ci0KLVJl
YWRhYmxlU3RyZWFtSlNTb3VyY2U6OlJlYWRhYmxlU3RyZWFtSlNTb3VyY2UoSlNDOjpFeGVjU3Rh
dGUqIGV4ZWMpCi17Ci0gICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghZXhlYy0+YXJndW1lbnRDb3Vu
dCgpIHx8IGV4ZWMtPmFyZ3VtZW50KDApLmlzT2JqZWN0KCksICJDYWxsZXIgb2YgUmVhZGFibGVT
dHJlYW1KU1NvdXJjZSBjb25zdHJ1Y3RvciBzaG91bGQgZW5zdXJlIHRoYXQgcGFzc2VkIGFyZ3Vt
ZW50IGlmIGFueSBpcyBhbiBvYmplY3QuIik7Ci0gICAgSlNPYmplY3QqIHNvdXJjZSA9ICBleGVj
LT5hcmd1bWVudENvdW50KCkgPyBleGVjLT5hcmd1bWVudCgwKS5nZXRPYmplY3QoKSA6IEpTRmlu
YWxPYmplY3Q6OmNyZWF0ZShleGVjLT52bSgpLCBKU0ZpbmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1
cmUoZXhlYy0+dm0oKSwgZXhlYy0+Y2FsbGVlKCktPmdsb2JhbE9iamVjdCgpLCBqc051bGwoKSwg
MSkpOwotICAgIG1fc291cmNlLnNldChleGVjLT52bSgpLCBzb3VyY2UpOwotfQotCi1SZWFkYWJs
ZVN0cmVhbUpTU291cmNlOjp+UmVhZGFibGVTdHJlYW1KU1NvdXJjZSgpCi17Ci0gICAgaWYgKG1f
Y29udHJvbGxlcikKLSAgICAgICAgbV9jb250cm9sbGVyLmdldCgpLT5pbXBsKCkucmVzZXRTdHJl
YW0oKTsKLX0KLQotc3RhdGljIHZvaWQgc3RhcnRSZWFkYWJsZVN0cmVhbUFzeW5jKFJlYWRhYmxl
U3RyZWFtJiByZWFkYWJsZVN0cmVhbSkKLXsKLSAgICBSZWZQdHI8UmVhZGFibGVTdHJlYW0+IHN0
cmVhbSA9ICZyZWFkYWJsZVN0cmVhbTsKLSAgICBzdHJlYW0tPnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKS0+cG9zdFRhc2soW3N0cmVhbV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIHsKLSAgICAg
ICAgc3RyZWFtLT5zdGFydCgpOwotICAgIH0pOwotfQotCi1KU0RPTUdsb2JhbE9iamVjdCogUmVh
ZGFibGVTdHJlYW1KU1NvdXJjZTo6Z2xvYmFsT2JqZWN0KCkKLXsKLSAgICByZXR1cm4ganNEeW5h
bWljQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KG1fc291cmNlLT5nbG9iYWxPYmplY3QoKSk7Ci19
Ci0KLXZvaWQgUmVhZGFibGVTdHJlYW1KU1NvdXJjZTo6c3RhcnQoRXhlY1N0YXRlJiBleGVjLCBS
ZWFkYWJsZUpTU3RyZWFtJiByZWFkYWJsZVN0cmVhbSkKLXsKLSAgICBKU0xvY2tIb2xkZXIgbG9j
aygmZXhlYyk7Ci0KLSAgICBSZWY8UmVhZGFibGVTdHJlYW1Db250cm9sbGVyPiBjb250cm9sbGVy
ID0gUmVhZGFibGVTdHJlYW1Db250cm9sbGVyOjpjcmVhdGUocmVhZGFibGVTdHJlYW0pOwotICAg
IG1fY29udHJvbGxlci5zZXQoZXhlYy52bSgpLCBqc0R5bmFtaWNDYXN0PEpTUmVhZGFibGVTdHJl
YW1Db250cm9sbGVyKj4odG9KUygmZXhlYywgZ2xvYmFsT2JqZWN0KCksIGNvbnRyb2xsZXIpKSk7
Ci0KLSAgICBKU1ZhbHVlIHN0YXJ0RnVuY3Rpb24gPSBnZXRQcm9wZXJ0eUZyb21PYmplY3QoJmV4
ZWMsIG1fc291cmNlLmdldCgpLCAic3RhcnQiKTsKLSAgICBpZiAoIXN0YXJ0RnVuY3Rpb24uaXNG
dW5jdGlvbigpKSB7Ci0gICAgICAgIGlmICghc3RhcnRGdW5jdGlvbi5pc1VuZGVmaW5lZCgpKQot
ICAgICAgICAgICAgdGhyb3dWTUVycm9yKCZleGVjLCBjcmVhdGVUeXBlRXJyb3IoJmV4ZWMsIEFT
Q0lJTGl0ZXJhbCgiUmVhZGFibGVTdHJlYW0gY29uc3RydWN0b3Igb2JqZWN0IHN0YXJ0IHByb3Bl
cnR5IHNob3VsZCBiZSBhIGZ1bmN0aW9uLiIpKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAg
IHN0YXJ0UmVhZGFibGVTdHJlYW1Bc3luYyhyZWFkYWJsZVN0cmVhbSk7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0KLSAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmd1bWVudHM7Ci0gICAgYXJn
dW1lbnRzLmFwcGVuZChtX2NvbnRyb2xsZXIuZ2V0KCkpOwotCi0gICAgSlNWYWx1ZSBleGNlcHRp
b247Ci0gICAgY2FsbEZ1bmN0aW9uKCZleGVjLCBzdGFydEZ1bmN0aW9uLCBtX3NvdXJjZS5nZXQo
KSwgYXJndW1lbnRzLCAmZXhjZXB0aW9uKTsKLQotICAgIGlmIChleGNlcHRpb24pIHsKLSAgICAg
ICAgdGhyb3dWTUVycm9yKCZleGVjLCBleGNlcHRpb24pOwotICAgICAgICByZXR1cm47Ci0gICAg
fQotCi0gICAgLy8gRklYTUU6IEltcGxlbWVudCBoYW5kbGluZyBwcm9taXNlIGFzIHJlc3VsdCBv
ZiBjYWxsaW5nIHN0YXJ0IGZ1bmN0aW9uLgotICAgIHN0YXJ0UmVhZGFibGVTdHJlYW1Bc3luYyhy
ZWFkYWJsZVN0cmVhbSk7Ci19Ci0KLVJlZjxSZWFkYWJsZUpTU3RyZWFtPiBSZWFkYWJsZUpTU3Ry
ZWFtOjpjcmVhdGUoRXhlY1N0YXRlJiBleGVjLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KQotewotICAgIFJlZjxSZWFkYWJsZVN0cmVhbUpTU291cmNlPiBz
b3VyY2UgPSBSZWFkYWJsZVN0cmVhbUpTU291cmNlOjpjcmVhdGUoJmV4ZWMpOwotICAgIFJlZjxS
ZWFkYWJsZUpTU3RyZWFtPiByZWFkYWJsZVN0cmVhbSA9IGFkb3B0UmVmKCpuZXcgUmVhZGFibGVK
U1N0cmVhbShzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBXVEY6Om1vdmUoc291cmNlKSkpOwotICAg
IHJlYWRhYmxlU3RyZWFtLT5qc1NvdXJjZSgpLnN0YXJ0KGV4ZWMsIHJlYWRhYmxlU3RyZWFtLmdl
dCgpKTsKLSAgICByZXR1cm4gcmVhZGFibGVTdHJlYW07Ci19Ci0KLVJlZjxSZWFkYWJsZVN0cmVh
bVJlYWRlcj4gUmVhZGFibGVKU1N0cmVhbTo6Y3JlYXRlUmVhZGVyKCkKLXsKLSAgICByZXR1cm4g
UmVhZGVyOjpjcmVhdGUoKnRoaXMpOwotfQotCi1SZWFkYWJsZUpTU3RyZWFtOjpSZWFkYWJsZUpT
U3RyZWFtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIFJl
ZjxSZWFkYWJsZVN0cmVhbUpTU291cmNlPiYmIHNvdXJjZSkKLSAgICA6IFJlYWRhYmxlU3RyZWFt
KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIFdURjo6bW92ZShzb3VyY2UpKQotewotfQotCi1SZWFk
YWJsZVN0cmVhbUpTU291cmNlJiBSZWFkYWJsZUpTU3RyZWFtOjpqc1NvdXJjZSgpCi17Ci0gICAg
cmV0dXJuIHN0YXRpY19jYXN0PFJlYWRhYmxlU3RyZWFtSlNTb3VyY2UmPihzb3VyY2UoKSk7Ci19
Ci0KLVJlZjxSZWFkYWJsZUpTU3RyZWFtOjpSZWFkZXI+IFJlYWRhYmxlSlNTdHJlYW06OlJlYWRl
cjo6Y3JlYXRlKFJlYWRhYmxlSlNTdHJlYW0mIHN0cmVhbSkKLXsKLSAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBSZWFkZXIoc3RyZWFtKSk7Ci19Ci0KLVJlYWRhYmxlSlNTdHJlYW06OlJlYWRlcjo6
UmVhZGVyKFJlYWRhYmxlSlNTdHJlYW0mIHJlYWRhYmxlU3RyZWFtKQotICAgIDogUmVhZGFibGVT
dHJlYW1SZWFkZXIocmVhZGFibGVTdHJlYW0pCi17Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFk
YWJsZVN0cmVhbUpTU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJs
ZVN0cmVhbUpTU291cmNlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEzMWQ0MTFi
NDhmZTIwZGYzYWVjNzk3MTNlZDFiMDJmOTBjN2VlODguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFi
bGVTdHJlYW1KU1NvdXJjZS5oCisrKyAvZGV2L251bGwKQEAgLTEsODggKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMk8xNSBDYW5vbiBJbmMuIDIwMTUKLSAqIENvcHlyaWdodCAoQykgMjAx
NSBJZ2FsaWEgUy5MLiAyMDE1Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgcmVxdWlyZWQgdG8gYmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICog
My4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQ2Fub24gSW5jLiBub3IgdGhlIG5hbWVzIG9mCi0gKiAg
ICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIENBTk9OIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBDQU5PTiBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IKLSAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwKLSAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCi0gKiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUgotICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKLSAqIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgUmVhZGFibGVTdHJlYW1KU1NvdXJjZV9o
Ci0jZGVmaW5lIFJlYWRhYmxlU3RyZWFtSlNTb3VyY2VfaAotCi0jaWYgRU5BQkxFKFNUUkVBTVNf
QVBJKQotCi0jaW5jbHVkZSAiSlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuaCIKLSNpbmNsdWRl
ICJSZWFkYWJsZVN0cmVhbS5oIgotI2luY2x1ZGUgIlJlYWRhYmxlU3RyZWFtUmVhZGVyLmgiCi0j
aW5jbHVkZSAiUmVhZGFibGVTdHJlYW1Tb3VyY2UuaCIKLSNpbmNsdWRlIDxoZWFwL1N0cm9uZy5o
PgotI2luY2x1ZGUgPGhlYXAvU3Ryb25nSW5saW5lcy5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvSlND
SlNWYWx1ZS5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvUHJpdmF0ZU5hbWUuaD4KLSNpbmNsdWRlIDx3
dGYvUmVmLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgUmVhZGFibGVTdHJlYW1K
U1NvdXJjZTogcHVibGljIFJlYWRhYmxlU3RyZWFtU291cmNlIHsKLXB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPFJlYWRhYmxlU3RyZWFtSlNTb3VyY2U+IGNyZWF0ZShKU0M6OkV4ZWNTdGF0ZSopOwot
ICAgIH5SZWFkYWJsZVN0cmVhbUpTU291cmNlKCk7Ci0KLSAgICBKU0RPTUdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KCk7Ci0gICAgdm9pZCBzdGFydChKU0M6OkV4ZWNTdGF0ZSYsIFJlYWRhYmxl
SlNTdHJlYW0mKTsKLQotcHJpdmF0ZToKLSAgICBSZWFkYWJsZVN0cmVhbUpTU291cmNlKEpTQzo6
RXhlY1N0YXRlKik7Ci0KLSAgICAvLyBPYmplY3QgcGFzc2VkIHRvIGNvbnN0cnVjdG9yLgotICAg
IEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+IG1fc291cmNlOwotCi0gICAgSlNDOjpTdHJvbmc8
SlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXI+IG1fY29udHJvbGxlcjsKLX07Ci0KLWNsYXNzIFJl
YWRhYmxlSlNTdHJlYW06IHB1YmxpYyBSZWFkYWJsZVN0cmVhbSB7Ci1wdWJsaWM6Ci0gICAgc3Rh
dGljIFJlZjxSZWFkYWJsZUpTU3RyZWFtPiBjcmVhdGUoSlNDOjpFeGVjU3RhdGUmLCBTY3JpcHRF
eGVjdXRpb25Db250ZXh0Jik7Ci0gICAgdmlydHVhbCBSZWY8UmVhZGFibGVTdHJlYW1SZWFkZXI+
IGNyZWF0ZVJlYWRlcigpIG92ZXJyaWRlOwotICAgIFJlYWRhYmxlU3RyZWFtSlNTb3VyY2UmIGpz
U291cmNlKCk7Ci0KLXByaXZhdGU6Ci0gICAgUmVhZGFibGVKU1N0cmVhbShTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiwgUmVmPFJlYWRhYmxlU3RyZWFtSlNTb3VyY2U+JiYpOwotCi0gICAgY2xhc3Mg
UmVhZGVyOiBwdWJsaWMgUmVhZGFibGVTdHJlYW1SZWFkZXIgewotICAgIHB1YmxpYzoKLSAgICAg
ICAgc3RhdGljIFJlZjxSZWFkZXI+IGNyZWF0ZShSZWFkYWJsZUpTU3RyZWFtJik7Ci0gICAgcHJp
dmF0ZToKLSAgICAgICAgZXhwbGljaXQgUmVhZGVyKFJlYWRhYmxlSlNTdHJlYW0mKTsKLSAgICB9
OwotfTsKLQotdm9pZCBzZXRJbnRlcm5hbFNsb3RUb09iamVjdChKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNWYWx1ZSwgSlNDOjpQcml2YXRlTmFtZSYsIEpTQzo6SlNWYWx1ZSk7Ci1KU0M6OkpTVmFs
dWUgZ2V0SW50ZXJuYWxTbG90RnJvbU9iamVjdChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1
ZSwgSlNDOjpQcml2YXRlTmFtZSYpOwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRp
ZiAvLyBFTkFCTEUoU1RSRUFNU19BUEkpCi0KLSNlbmRpZiAvLyBSZWFkYWJsZVN0cmVhbUpTU291
cmNlX2gK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>252466</attachid>
            <date>2015-05-06 03:38:16 -0700</date>
            <delta_ts>2015-05-06 05:01:02 -0700</delta_ts>
            <desc>Rebasing for landing</desc>
            <filename>bug-144567-20150506123659.patch</filename>
            <type>text/plain</type>
            <size>34217</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzODIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTMxYWJiNGU0MGE0N2Mx
Yzg5NmY4NTdjOGY1NDljZTYyMzdjZDhlMS4uZmRmMTcwNTA5OTE0NTE5OTVmNzY1YmIxNGUyN2Jm
MzEzMmE2NzBhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE1LTA1LTA2ICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+IGFuZCBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgTW92ZSBSZWFkYWJs
ZVN0cmVhbUpTU291cmNlLmgvLmNwcCB0byBSZWFkYWJsZUpTU3RyZWFtLmgvLmNwcAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0NTY3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgSW4gYWRkaXRpb24gdG8gcmVu
YW1pbmcgUmVhZGFibGVTdHJlYW1KU1NvdXJjZS5oLy5jcHAsIFJlYWRhYmxlU3RyZWFtSlNTb3Vy
Y2UgaXMgbm93IG1hZGUgYSBwcml2YXRlIGNsYXNzIG9mCisgICAgICAgIFJlYWRhYmxlSlNTdHJl
YW0sIGNhbGxlZCBSZWFkYWJsZUpTU3RyZWFtOjpTb3VyY2UuCisgICAgICAgIE1hZGUgc29tZSBt
aW5vciByZWZhY3RvcmluZyAocGFzc2luZyBzb21lIEV4ZWNTdGF0ZSBieSByZWYgYW5kIG5vdCBi
eSBwb2ludGVyKS4KKyAgICAgICAgTm8gZnVuY3Rpb25hbCBjaGFuZ2UsIGV4aXN0aW5nIHRlc3Rz
IGNvdmVyIHRoZSBjaGFuZ2VzLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0
cmVhbUN1c3RvbS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvUmVhZGFibGVKU1N0cmVhbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZUpTU3RyZWFtOjpTb3VyY2U6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZUpTU3RyZWFtOjpTb3VyY2U6OlNvdXJjZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZUpTU3RyZWFtOjpTb3VyY2U6On5Tb3VyY2UpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVhZGFibGVKU1N0cmVhbTo6U291cmNlOjpnbG9iYWxPYmplY3QpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVKU1N0cmVhbTo6U291cmNlOjpzdGFydCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZWFkYWJsZUpTU3RyZWFtOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVhZGFibGVKU1N0cmVhbTo6UmVhZGFibGVKU1N0cmVhbSk6CisgICAgICAgICogYmluZGlu
Z3MvanMvUmVhZGFibGVKU1N0cmVhbS5oOgorCiAyMDE1LTA1LTA0ICBSb2dlciBGb25nICA8cm9n
ZXJfZm9uZ0BhcHBsZS5jb20+CiAKICAgICAgICAgTWVkaWEgY29udHJvbCB2b2x1bWUgc2xpZGVy
IGlzIG9wYXF1ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZDZkZWIxZDc1ODkzMTRjZmUzMjYx
OGYyMjVmNGYyOWQwOGQyYzA3MS4uYjJiNzIyNzVhZTlkZjkxMTA0MDBiZTFiZmM3Yjg1MmNiZjUw
Mjk3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTExNTgsNyArMTE1OCw3IEBAIHNldChXZWJD
b3JlX1NPVVJDRVMKICAgICBiaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtQ3VzdG9tLmNwcAog
ICAgIGJpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyQ3VzdG9tLmNwcAogICAg
IGJpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1SZWFkZXJDdXN0b20uY3BwCi0gICAgYmluZGlu
Z3MvanMvUmVhZGFibGVTdHJlYW1KU1NvdXJjZS5jcHAKKyAgICBiaW5kaW5ncy9qcy9SZWFkYWJs
ZUpTU3RyZWFtLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2Fs
bGJhY2tDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNTUUxSZXN1bHRTZXRSb3dMaXN0Q3Vz
dG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTU1FMVHJhbnNhY3Rpb25DdXN0b20uY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Db250
cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1D
b250cm9sbGVyLmgKaW5kZXggZjM0MTVjMTA4MWIxYTk1NDQwNjJiYjNhZTE0NjM5NjhhYmFhNTg1
Ny4uZTU5NThkMWJhYjYxODdkNGE1OTNmNjExYzA1NGYxMGQ3NGFjMTg4NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUNvbnRy
b2xsZXIuaApAQCAtMzIsNyArMzIsNyBAQAogCiAjaWYgRU5BQkxFKFNUUkVBTVNfQVBJKQogCi0j
aW5jbHVkZSAiUmVhZGFibGVTdHJlYW1KU1NvdXJjZS5oIgorI2luY2x1ZGUgIlJlYWRhYmxlSlNT
dHJlYW0uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCAwOTA0MGEyNjZkYjNiYjcxYjNmYjdk
MjRkZWI2NjdiMjI1NWYzOGY0Li4yYjQ0Yzk1Y2Y5NTVkMDFmZjJmNjgxYmYwYjUyOTlhYTA1ZjU2
OGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52
Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHBy
b2oKQEAgLTE3NDY4LDcgKzE3NDY4LDcgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xSZWFkYWJsZVN0cmVhbUpTU291cmNlLmNwcCI+Cisg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xSZWFkYWJsZUpTU3RyZWFtLmNw
cCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgog
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5m
aWx0ZXJzIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5m
aWx0ZXJzCmluZGV4IDJhNTM0OWQxNDE2ZTI1ZDRjYmQyYmY1MDg1NDZjOTM4YmY2NWZhNzYuLjIy
ZWU1Njg5MjUxNzI1NmYyM2ZkNTNkMzVmMWQxMGU0NjA2ZjFjNzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycworKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKQEAg
LTQ0MjUsNyArNDQyNSw3IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xq
c1xKU1JlYWRhYmxlU3RyZWFtUmVhZGVyQ3VzdG9tLmNwcCI+CiAgICAgICA8RmlsdGVyPmJpbmRp
bmdzXGpzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxiaW5kaW5nc1xqc1xSZWFkYWJsZVN0cmVhbUpTU291cmNlLmNwcCI+CisgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xSZWFkYWJsZUpTU3RyZWFtLmNwcCI+CiAgICAg
ICA8RmlsdGVyPmJpbmRpbmdzXGpzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xKU1JlcXVlc3RBbmltYXRpb25GcmFtZUNh
bGxiYWNrQ3VzdG9tLmNwcCI+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggYWNkYzk5OGMwNmE5NDA4OGRjNDIwYmZkMjE3Y2U2N2Qx
Y2E5NDVlNi4uMDJkMDZjMWIyNjBmYTY1MTMzMWNhNWJiN2NmOTJiMTQzMTg3NDg3MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MTQ3NCw4ICsxNDc0LDggQEAKIAkJNDE4QTA2RDExMzNDMDRENTAwQ0QzNzlDIC8qIEV2ZW50RGlz
cGF0Y2hlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MThBMDZDRjEzM0MwNEQ1MDBDRDM3OUMgLyogRXZlbnREaXNwYXRjaGVyLmNwcCAqLzsgfTsK
IAkJNDE4Rjg4MDQwRkY5NTdBRTAwODBGMDQ1IC8qIEpTQWJzdHJhY3RXb3JrZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE4Rjg4MDIwRkY5NTdB
RTAwODBGMDQ1IC8qIEpTQWJzdHJhY3RXb3JrZXIuY3BwICovOyB9OwogCQk0MThGODgwNTBGRjk1
N0FGMDA4MEYwNDUgLyogSlNBYnN0cmFjdFdvcmtlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE4Rjg4MDMwRkY5NTdBRTAwODBGMDQ1IC8qIEpTQWJz
dHJhY3RXb3JrZXIuaCAqLzsgfTsKLQkJNDE5OEJERjAxQTgxMTQyMjAwQjIyRkI1IC8qIFJlYWRh
YmxlU3RyZWFtSlNTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDE5OEJERUUxQTgxMTIzNjAwQjIyRkI1IC8qIFJlYWRhYmxlU3RyZWFtSlNT
b3VyY2UuY3BwICovOyB9OwotCQk0MTk4QkRGMTFBODExNDMxMDBCMjJGQjUgLyogUmVhZGFibGVT
dHJlYW1KU1NvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDE5OEJERUYxQTgxMTIzNjAwQjIyRkI1IC8qIFJlYWRhYmxlU3RyZWFtSlNTb3VyY2Uu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0MTk4
QkRGMDFBODExNDIyMDBCMjJGQjUgLyogUmVhZGFibGVKU1N0cmVhbS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTk4QkRFRTFBODExMjM2MDBCMjJG
QjUgLyogUmVhZGFibGVKU1N0cmVhbS5jcHAgKi87IH07CisJCTQxOThCREYxMUE4MTE0MzEwMEIy
MkZCNSAvKiBSZWFkYWJsZUpTU3RyZWFtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MTk4QkRFRjFBODExMjM2MDBCMjJGQjUgLyogUmVhZGFibGVKU1N0
cmVhbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTQxOUJDMkRFMTY4NTMyOTkwMEQ2NEQ2RCAvKiBWaXNpdGVkTGlua1N0YXRlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxOUJDMkRDMTY4NTMyOTkw
MEQ2NEQ2RCAvKiBWaXNpdGVkTGlua1N0YXRlLmNwcCAqLzsgfTsKIAkJNDE5QkMyREYxNjg1MzI5
OTAwRDY0RDZEIC8qIFZpc2l0ZWRMaW5rU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxOUJDMkREMTY4NTMyOTkwMEQ2NEQ2RCAvKiBWaXNpdGVk
TGlua1N0YXRlLmggKi87IH07CiAJCTQxOUZBRkFFMUFCQUJEMDgwMDVCODI4QiAvKiBSZWFkYWJs
ZVN0cmVhbVJlYWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MTlGQUZBQjFBQkFCQ0Q1MDA1QjgyOEIgLyogUmVhZGFibGVTdHJlYW1SZWFkZXIu
Y3BwICovOyB9OwpAQCAtODYxMyw4ICs4NjEzLDggQEAKIAkJNDE4QTA2Q0YxMzNDMDRENTAwQ0Qz
NzlDIC8qIEV2ZW50RGlzcGF0Y2hlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBFdmVudERpc3BhdGNoZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0MThGODgwMjBGRjk1N0FFMDA4MEYwNDUgLyogSlNBYnN0cmFjdFdvcmtlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0Fic3RyYWN0V29ya2VyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4Rjg4MDMwRkY5NTdBRTAwODBGMDQ1IC8qIEpT
QWJzdHJhY3RXb3JrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNBYnN0
cmFjdFdvcmtlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0MTk4QkRFRTFBODEx
MjM2MDBCMjJGQjUgLyogUmVhZGFibGVTdHJlYW1KU1NvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWFkYWJsZVN0cmVhbUpTU291cmNlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDE5OEJERUYxQTgxMTIzNjAwQjIyRkI1IC8qIFJlYWRh
YmxlU3RyZWFtSlNTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVh
ZGFibGVTdHJlYW1KU1NvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTk4
QkRFRTFBODExMjM2MDBCMjJGQjUgLyogUmVhZGFibGVKU1N0cmVhbS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWFkYWJsZUpTU3RyZWFtLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE5OEJERUYxQTgxMTIzNjAwQjIyRkI1IC8qIFJlYWRhYmxl
SlNTdHJlYW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhZGFibGVKU1N0
cmVhbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTlCQzJEQzE2ODUzMjk5MDBE
NjRENkQgLyogVmlzaXRlZExpbmtTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBWaXNpdGVkTGlua1N0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDE5QkMyREQxNjg1MzI5OTAwRDY0RDZEIC8qIFZpc2l0ZWRMaW5rU3RhdGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlzaXRlZExpbmtTdGF0ZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MTlGQUZBQjFBQkFCQ0Q1MDA1QjgyOEIgLyogUmVhZGFi
bGVTdHJlYW1SZWFkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UmVhZGFibGVTdHJlYW1SZWFkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MjExNzIsOCArMjExNzIsOCBAQAogCQkJCUUxQzM2RDMyMEVCMEEwOTQwMDc0MTBCQyAvKiBKU1dv
cmtlckdsb2JhbFNjb3BlQmFzZS5jcHAgKi8sCiAJCQkJRTFDMzZEMzMwRUIwQTA5NDAwNzQxMEJD
IC8qIEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmggKi8sCiAJCQkJNDExODlFRjgxQUQ4MjMzQzAw
QjkwQTBEIC8qIEpTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyQ3VzdG9tLmNwcCAqLywKLQkJCQk0
MTk4QkRFRTFBODExMjM2MDBCMjJGQjUgLyogUmVhZGFibGVTdHJlYW1KU1NvdXJjZS5jcHAgKi8s
Ci0JCQkJNDE5OEJERUYxQTgxMTIzNjAwQjIyRkI1IC8qIFJlYWRhYmxlU3RyZWFtSlNTb3VyY2Uu
aCAqLywKKwkJCQk0MTk4QkRFRTFBODExMjM2MDBCMjJGQjUgLyogUmVhZGFibGVKU1N0cmVhbS5j
cHAgKi8sCisJCQkJNDE5OEJERUYxQTgxMTIzNjAwQjIyRkI1IC8qIFJlYWRhYmxlSlNTdHJlYW0u
aCAqLywKIAkJCQlCQ0EzNzhCQTBEMTVGNjQyMDBCNzkzRDYgLyogU2NoZWR1bGVkQWN0aW9uLmNw
cCAqLywKIAkJCQlCQ0EzNzhCQjBEMTVGNjQyMDBCNzkzRDYgLyogU2NoZWR1bGVkQWN0aW9uLmgg
Ki8sCiAJCQkJNDFGMUQyMUUwRUYzNUMyQTAwREE4NzUzIC8qIFNjcmlwdENhY2hlZEZyYW1lRGF0
YS5jcHAgKi8sCkBAIC0yNjc1Miw3ICsyNjc1Miw3IEBACiAJCQkJMDcwOUQ3OEYxQUU1NTU1NDAw
NEU0MkY4IC8qIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTg0
QjZCOTc4MTIwRjEzRTUwMEI4RUZBRiAvKiBTVkdQYXRoU2VnTGlzdFNvdXJjZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODNDMUQ0MzUxNzhENUFCNTAwMTQxRTY4IC8qIFNWR1BhdGhTZWdNb3ZldG9B
YnMuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxOThCREYxMUE4MTE0MzEwMEIyMkZCNSAvKiBSZWFk
YWJsZVN0cmVhbUpTU291cmNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTk4QkRGMTFBODExNDMx
MDBCMjJGQjUgLyogUmVhZGFibGVKU1N0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNDMUQ0
MzYxNzhENUFCNTAwMTQxRTY4IC8qIFNWR1BhdGhTZWdNb3ZldG9SZWwuaCBpbiBIZWFkZXJzICov
LAogCQkJCTA4MkRFNDJEMTI5MjYyMTYwMEQ5MjNERiAvKiBTVkdQYXRoU2VnV2l0aENvbnRleHQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTg0MzAwQkQ4MTIwQzlBRDQwMDIxOTU0QSAvKiBTVkdQYXRo
U291cmNlLmggaW4gSGVhZGVycyAqLywKQEAgLTMwMjYwLDcgKzMwMjYwLDcgQEAKIAkJCQlGQjQ4
NEY0QzE3MUY4MjFFMDAwNDA3NTUgLyogVHJhbnNmb3JtRnVuY3Rpb25zLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTQ5RTkxMUNGMEVGODZENDcwMDlEMENBRiAvKiBUcmFuc2Zvcm1PcGVyYXRpb25z
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVEQjFCQzZCMTA3MTVBNjQwMEVGQUE0OSAvKiBUcmFu
c2Zvcm1Tb3VyY2VMaWJ4c2x0LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTQxOThCREYwMUE4MTE0
MjIwMEIyMkZCNSAvKiBSZWFkYWJsZVN0cmVhbUpTU291cmNlLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTQxOThCREYwMUE4MTE0MjIwMEIyMkZCNSAvKiBSZWFkYWJsZUpTU3RyZWFtLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTQ5NDVCRkQzMTNDRjgwOTAwMENDM0IzOCAvKiBUcmFuc2Zvcm1TdGF0
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMTdCNDkxNTE2QTlCMDk0MDAxQzg4MzkgLyogVHJh
bnNpdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5RTkxMUQxMEVGODZENDcwMDlE
MENBRiAvKiBUcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcApp
bmRleCA5YTYyZGQ2ZjEyZjBhMWZhYTUwZTIzYTYxMzFiMzBjMzg3ZTdkYjA5Li44YTVlYWU3ZjBk
ZmFhZTkwNzQxZTk1MDE2NDYwYjE0MDMwYzRkNDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKQEAgLTExNSw3ICsxMTUsNyBAQAog
I2luY2x1ZGUgIkpTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyQ3VzdG9tLmNwcCIKICNpbmNsdWRl
ICJKU1JlYWRhYmxlU3RyZWFtQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU1JlYWRhYmxlU3RyZWFt
UmVhZGVyQ3VzdG9tLmNwcCIKLSNpbmNsdWRlICJSZWFkYWJsZVN0cmVhbUpTU291cmNlLmNwcCIK
KyNpbmNsdWRlICJSZWFkYWJsZUpTU3RyZWFtLmNwcCIKICNlbmRpZgogI2luY2x1ZGUgIkpTUmVx
dWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2tDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTU1FMUmVz
dWx0U2V0Um93TGlzdEN1c3RvbS5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlckN1c3RvbS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlckN1c3RvbS5jcHAKaW5k
ZXggZmI1ZDZmOGRiZWRhODA5ODkyOGI2ZTU3ZDI1YjA4YTA2ZDQzOTlmOS4uNjk1Y2YyOWU4N2Rl
NDZmODY3ODQ5YzcyODVkYTJiNjcwODRjN2U1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJDdXN0b20uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyQ3VzdG9t
LmNwcApAQCAtMzQsNyArMzQsNyBAQAogCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5j
bHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLSNpbmNsdWRlICJSZWFkYWJsZVN0cmVhbUpTU291cmNl
LmgiCisjaW5jbHVkZSAiUmVhZGFibGVKU1N0cmVhbS5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvRXJy
b3IuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1DdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVhbUN1c3RvbS5jcHAKaW5kZXggMTFhMDE1Mzk0YjRh
ZmZhODBhN2NiNzUzYjcwYzVlOTkzMzdiNjAzYi4uYmMxODY3OTFlYmIzYzUwMDllYWY4NzIxNDE5
NmY0MjY1YThmODQ1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNS
ZWFkYWJsZVN0cmVhbUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNSZWFkYWJsZVN0cmVhbUN1c3RvbS5jcHAKQEAgLTM2LDggKzM2LDggQEAKICNpbmNsdWRlICJK
U0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTVByb21pc2UuaCIKICNpbmNsdWRlICJKU1Jl
YWRhYmxlU3RyZWFtUmVhZGVyLmgiCisjaW5jbHVkZSAiUmVhZGFibGVKU1N0cmVhbS5oIgogI2lu
Y2x1ZGUgIlJlYWRhYmxlU3RyZWFtLmgiCi0jaW5jbHVkZSAiUmVhZGFibGVTdHJlYW1KU1NvdXJj
ZS5oIgogI2luY2x1ZGUgIlJlYWRhYmxlU3RyZWFtUmVhZGVyLmgiCiAjaW5jbHVkZSA8cnVudGlt
ZS9FcnJvci5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVhbVJlYWRlckN1c3RvbS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtUmVhZGVyQ3Vz
dG9tLmNwcAppbmRleCBlNGFkZGE3MDE1OTA3ZTBlZDM3YjMwM2U4ZTJjMTU0Zjc0ODA4NzQ1Li40
OGRiNTRmOTBjYjJlYTNhN2U4MmJhOWVhYjkwZTQ2NTE4N2M2NTA4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtUmVhZGVyQ3VzdG9tLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtUmVhZGVyQ3Vz
dG9tLmNwcApAQCAtMzUsNyArMzUsNyBAQAogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNp
bmNsdWRlICJKU0RPTVByb21pc2UuaCIKICNpbmNsdWRlICJKU1JlYWRhYmxlU3RyZWFtLmgiCi0j
aW5jbHVkZSAiUmVhZGFibGVTdHJlYW1KU1NvdXJjZS5oIgorI2luY2x1ZGUgIlJlYWRhYmxlSlNT
dHJlYW0uaCIKICNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVy
RGVzdHJveWVkLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Jl
YWRhYmxlSlNTdHJlYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVK
U1N0cmVhbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjA2N2QxNjkzOTVmNGI2ZmQ4Y2M4OWEzZGU2OGJmMWRl
ODlkMmU2MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Jl
YWRhYmxlSlNTdHJlYW0uY3BwCkBAIC0wLDAgKzEsMTc2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE1IENhbm9uIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5MLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkLCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIHJlcXVpcmVkIHRvIGJlIG1ldDoK
KyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9m
IENhbm9uIEluYy4gbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBm
cm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBDQU5PTiBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQ0FOT04gSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisg
KiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVhZGFibGVKU1N0cmVhbS5oIgorCisj
aWYgRU5BQkxFKFNUUkVBTVNfQVBJKQorCisjaW5jbHVkZSAiRE9NV3JhcHBlcldvcmxkLmgiCisj
aW5jbHVkZSAiSlNET01Qcm9taXNlLmgiCisjaW5jbHVkZSAiSlNSZWFkYWJsZVN0cmVhbS5oIgor
I2luY2x1ZGUgIkpTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmgiCisjaW5jbHVkZSAiTm90SW1w
bGVtZW50ZWQuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVk
ZSA8cnVudGltZS9FcnJvci5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMu
aD4KKyNpbmNsdWRlIDxydW50aW1lL0pTU3RyaW5nLmg+CisjaW5jbHVkZSA8cnVudGltZS9TdHJ1
Y3R1cmVJbmxpbmVzLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKwordm9pZCBzZXRJbnRlcm5hbFNsb3RUb09iamVjdChFeGVjU3RhdGUqIGV4ZWMsIEpT
VmFsdWUgb2JqZWN0VmFsdWUsIFByaXZhdGVOYW1lJiBuYW1lLCBKU1ZhbHVlIHZhbHVlKQorewor
ICAgIEpTT2JqZWN0KiBvYmplY3QgPSBvYmplY3RWYWx1ZS50b09iamVjdChleGVjKTsKKyAgICBQ
dXRQcm9wZXJ0eVNsb3QgcHJvcGVydHlTbG90KG9iamVjdFZhbHVlKTsKKyAgICBvYmplY3QtPnB1
dChvYmplY3QsIGV4ZWMsIElkZW50aWZpZXI6OmZyb21VaWQobmFtZSksIHZhbHVlLCBwcm9wZXJ0
eVNsb3QpOworfQorCitKU1ZhbHVlIGdldEludGVybmFsU2xvdEZyb21PYmplY3QoRXhlY1N0YXRl
KiBleGVjLCBKU1ZhbHVlIG9iamVjdFZhbHVlLCBQcml2YXRlTmFtZSYgbmFtZSkKK3sKKyAgICBK
U09iamVjdCogb2JqZWN0ID0gb2JqZWN0VmFsdWUudG9PYmplY3QoZXhlYyk7CisgICAgUHJvcGVy
dHlTbG90IHByb3BlcnR5U2xvdChvYmplY3RWYWx1ZSk7CisKKyAgICBJZGVudGlmaWVyIHByb3Bl
cnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21VaWQobmFtZSk7CisgICAgaWYgKCFvYmplY3QtPmdl
dE93blByb3BlcnR5U2xvdChvYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgcHJvcGVydHlTbG90
KSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWUoKTsKKyAgICByZXR1cm4gcHJvcGVydHlTbG90Lmdl
dFZhbHVlKGV4ZWMsIHByb3BlcnR5TmFtZSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBn
ZXRQcm9wZXJ0eUZyb21PYmplY3QoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogb2JqZWN0LCBj
b25zdCBjaGFyKiBpZGVudGlmaWVyKQoreworICAgIHJldHVybiBvYmplY3QtPmdldChleGVjLCBJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKGV4ZWMsIGlkZW50aWZpZXIpKTsKK30KKworc3RhdGljIGlu
bGluZSBKU1ZhbHVlIGNhbGxGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUganNGdW5j
dGlvbiwgSlNWYWx1ZSB0aGlzVmFsdWUsIGNvbnN0IEFyZ0xpc3QmIGFyZ3VtZW50cywgSlNWYWx1
ZSogZXhjZXB0aW9uKQoreworICAgIENhbGxEYXRhIGNhbGxEYXRhOworICAgIENhbGxUeXBlIGNh
bGxUeXBlID0gZ2V0Q2FsbERhdGEoanNGdW5jdGlvbiwgY2FsbERhdGEpOworICAgIHJldHVybiBj
YWxsKGV4ZWMsIGpzRnVuY3Rpb24sIGNhbGxUeXBlLCBjYWxsRGF0YSwgdGhpc1ZhbHVlLCBhcmd1
bWVudHMsIGV4Y2VwdGlvbik7Cit9CisKK1JlZjxSZWFkYWJsZUpTU3RyZWFtOjpTb3VyY2U+IFJl
YWRhYmxlSlNTdHJlYW06OlNvdXJjZTo6Y3JlYXRlKEV4ZWNTdGF0ZSYgZXhlYykKK3sKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTb3VyY2UoZXhlYykpOworfQorCitSZWFkYWJsZUpTU3RyZWFt
OjpTb3VyY2U6OlNvdXJjZShFeGVjU3RhdGUmIGV4ZWMpCit7CisgICAgQVNTRVJUX1dJVEhfTUVT
U0FHRSghZXhlYy5hcmd1bWVudENvdW50KCkgfHwgZXhlYy5hcmd1bWVudCgwKS5pc09iamVjdCgp
LCAiQ2FsbGVyIG9mIFJlYWRhYmxlSlNTdHJlYW06OlNvdXJjZSBjb25zdHJ1Y3RvciBzaG91bGQg
ZW5zdXJlIHRoYXQgcGFzc2VkIGFyZ3VtZW50IGlmIGFueSBpcyBhbiBvYmplY3QuIik7CisgICAg
SlNPYmplY3QqIHNvdXJjZSA9ICBleGVjLmFyZ3VtZW50Q291bnQoKSA/IGV4ZWMuYXJndW1lbnQo
MCkuZ2V0T2JqZWN0KCkgOiBKU0ZpbmFsT2JqZWN0OjpjcmVhdGUoZXhlYy52bSgpLCBKU0ZpbmFs
T2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy52bSgpLCBleGVjLmNhbGxlZSgpLT5nbG9iYWxP
YmplY3QoKSwganNOdWxsKCksIDEpKTsKKyAgICBtX3NvdXJjZS5zZXQoZXhlYy52bSgpLCBzb3Vy
Y2UpOworfQorCitKU0RPTUdsb2JhbE9iamVjdCogUmVhZGFibGVKU1N0cmVhbTo6U291cmNlOjpn
bG9iYWxPYmplY3QoKQoreworICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTRE9NR2xvYmFsT2Jq
ZWN0Kj4obV9zb3VyY2UtPmdsb2JhbE9iamVjdCgpKTsKK30KKworc3RhdGljIHZvaWQgc3RhcnRS
ZWFkYWJsZVN0cmVhbUFzeW5jKFJlYWRhYmxlU3RyZWFtJiByZWFkYWJsZVN0cmVhbSkKK3sKKyAg
ICBSZWZQdHI8UmVhZGFibGVTdHJlYW0+IHN0cmVhbSA9ICZyZWFkYWJsZVN0cmVhbTsKKyAgICBz
dHJlYW0tPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+cG9zdFRhc2soW3N0cmVhbV0oU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYpIHsKKyAgICAgICAgc3RyZWFtLT5zdGFydCgpOworICAgIH0pOwor
fQorCit2b2lkIFJlYWRhYmxlSlNTdHJlYW06OlNvdXJjZTo6c3RhcnQoRXhlY1N0YXRlJiBleGVj
LCBSZWFkYWJsZUpTU3RyZWFtJiByZWFkYWJsZVN0cmVhbSkKK3sKKyAgICBKU0xvY2tIb2xkZXIg
bG9jaygmZXhlYyk7CisKKyAgICBKU1ZhbHVlIHN0YXJ0RnVuY3Rpb24gPSBnZXRQcm9wZXJ0eUZy
b21PYmplY3QoJmV4ZWMsIG1fc291cmNlLmdldCgpLCAic3RhcnQiKTsKKyAgICBpZiAoIXN0YXJ0
RnVuY3Rpb24uaXNGdW5jdGlvbigpKSB7CisgICAgICAgIGlmICghc3RhcnRGdW5jdGlvbi5pc1Vu
ZGVmaW5lZCgpKQorICAgICAgICAgICAgdGhyb3dWTUVycm9yKCZleGVjLCBjcmVhdGVUeXBlRXJy
b3IoJmV4ZWMsIEFTQ0lJTGl0ZXJhbCgiUmVhZGFibGVTdHJlYW0gY29uc3RydWN0b3Igb2JqZWN0
IHN0YXJ0IHByb3BlcnR5IHNob3VsZCBiZSBhIGZ1bmN0aW9uLiIpKSk7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIHN0YXJ0UmVhZGFibGVTdHJlYW1Bc3luYyhyZWFkYWJsZVN0cmVhbSk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmd1bWVu
dHM7CisgICAgYXJndW1lbnRzLmFwcGVuZChyZWFkYWJsZVN0cmVhbS5qc0NvbnRyb2xsZXIoZXhl
YywgZ2xvYmFsT2JqZWN0KCkpKTsKKworICAgIEpTVmFsdWUgZXhjZXB0aW9uOworICAgIGNhbGxG
dW5jdGlvbigmZXhlYywgc3RhcnRGdW5jdGlvbiwgbV9zb3VyY2UuZ2V0KCksIGFyZ3VtZW50cywg
JmV4Y2VwdGlvbik7CisKKyAgICBpZiAoZXhjZXB0aW9uKSB7CisgICAgICAgIHRocm93Vk1FcnJv
cigmZXhlYywgZXhjZXB0aW9uKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIEZJ
WE1FOiBJbXBsZW1lbnQgaGFuZGxpbmcgcHJvbWlzZSBhcyByZXN1bHQgb2YgY2FsbGluZyBzdGFy
dCBmdW5jdGlvbi4KKyAgICBzdGFydFJlYWRhYmxlU3RyZWFtQXN5bmMocmVhZGFibGVTdHJlYW0p
OworfQorCitSZWY8UmVhZGFibGVKU1N0cmVhbT4gUmVhZGFibGVKU1N0cmVhbTo6Y3JlYXRlKEV4
ZWNTdGF0ZSYgZXhlYywgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCkKK3sKKyAgICBSZWY8UmVhZGFibGVKU1N0cmVhbTo6U291cmNlPiBzb3VyY2UgPSBSZWFk
YWJsZUpTU3RyZWFtOjpTb3VyY2U6OmNyZWF0ZShleGVjKTsKKyAgICBSZWY8UmVhZGFibGVKU1N0
cmVhbT4gcmVhZGFibGVTdHJlYW0gPSBhZG9wdFJlZigqbmV3IFJlYWRhYmxlSlNTdHJlYW0oc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCwgV1RGOjptb3ZlKHNvdXJjZSkpKTsKKworICAgIHN0YXRpY19j
YXN0PFJlYWRhYmxlSlNTdHJlYW06OlNvdXJjZSY+KHJlYWRhYmxlU3RyZWFtLT5zb3VyY2UoKSku
c3RhcnQoZXhlYywgcmVhZGFibGVTdHJlYW0uZ2V0KCkpOworICAgIHJldHVybiByZWFkYWJsZVN0
cmVhbTsKK30KKworUmVmPFJlYWRhYmxlU3RyZWFtUmVhZGVyPiBSZWFkYWJsZUpTU3RyZWFtOjpj
cmVhdGVSZWFkZXIoKQoreworICAgIHJldHVybiBSZWFkZXI6OmNyZWF0ZSgqdGhpcyk7Cit9CisK
K1JlYWRhYmxlSlNTdHJlYW06OlJlYWRhYmxlSlNTdHJlYW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgUmVmPFJlYWRhYmxlSlNTdHJlYW06OlNvdXJjZT4m
JiBzb3VyY2UpCisgICAgOiBSZWFkYWJsZVN0cmVhbShzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBX
VEY6Om1vdmUoc291cmNlKSkKK3sKK30KKworUmVhZGFibGVKU1N0cmVhbTo6U291cmNlJiBSZWFk
YWJsZUpTU3RyZWFtOjpqc1NvdXJjZSgpCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlYWRh
YmxlSlNTdHJlYW06OlNvdXJjZSY+KHNvdXJjZSgpKTsKK30KKworSlNWYWx1ZSBSZWFkYWJsZUpT
U3RyZWFtOjpqc0NvbnRyb2xsZXIoRXhlY1N0YXRlJiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KQoreworICAgIGlmICghbV9jb250cm9sbGVyKQorICAgICAgICBtX2NvbnRy
b2xsZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlcj4oKnRoaXMp
OworICAgIHJldHVybiB0b0pTKCZleGVjLCBnbG9iYWxPYmplY3QsIG1fY29udHJvbGxlci5nZXQo
KSk7Cit9CisKK1JlZjxSZWFkYWJsZUpTU3RyZWFtOjpSZWFkZXI+IFJlYWRhYmxlSlNTdHJlYW06
OlJlYWRlcjo6Y3JlYXRlKFJlYWRhYmxlSlNTdHJlYW0mIHN0cmVhbSkKK3sKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBSZWFkZXIoc3RyZWFtKSk7Cit9CisKK1JlYWRhYmxlSlNTdHJlYW06OlJl
YWRlcjo6UmVhZGVyKFJlYWRhYmxlSlNTdHJlYW0mIHJlYWRhYmxlU3RyZWFtKQorICAgIDogUmVh
ZGFibGVTdHJlYW1SZWFkZXIocmVhZGFibGVTdHJlYW0pCit7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9SZWFkYWJsZUpTU3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJs
ZUpTU3RyZWFtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmU3ZjJiZDIzNWE2MjU2OGUxOTFiMWFjMWM5MjEzNGE0
MTU3N2Q4MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Jl
YWRhYmxlSlNTdHJlYW0uaApAQCAtMCwwICsxLDkxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
TzE1IENhbm9uIEluYy4gMjAxNQorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuIDIw
MTUKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCwgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSByZXF1aXJlZCB0byBi
ZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUg
bmFtZSBvZiBDYW5vbiBJbmMuIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisg
KiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQ0FOT04gSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIENB
Tk9OIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorICogQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBSZWFkYWJsZUpTU3RyZWFtX2gKKyNkZWZpbmUgUmVhZGFibGVKU1N0
cmVhbV9oCisKKyNpZiBFTkFCTEUoU1RSRUFNU19BUEkpCisKKyNpbmNsdWRlICJSZWFkYWJsZVN0
cmVhbS5oIgorI2luY2x1ZGUgIlJlYWRhYmxlU3RyZWFtUmVhZGVyLmgiCisjaW5jbHVkZSAiUmVh
ZGFibGVTdHJlYW1Tb3VyY2UuaCIKKyNpbmNsdWRlIDxoZWFwL1N0cm9uZy5oPgorI2luY2x1ZGUg
PGhlYXAvU3Ryb25nSW5saW5lcy5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSlNWYWx1ZS5oPgor
I2luY2x1ZGUgPHJ1bnRpbWUvUHJpdmF0ZU5hbWUuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSlNET01HbG9iYWxPYmplY3Q7CitjbGFzcyBS
ZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXI7CisKK2NsYXNzIFJlYWRhYmxlSlNTdHJlYW06IHB1Ymxp
YyBSZWFkYWJsZVN0cmVhbSB7Citwcml2YXRlOgorICAgIGNsYXNzIFJlYWRlcjogcHVibGljIFJl
YWRhYmxlU3RyZWFtUmVhZGVyIHsKKyAgICBwdWJsaWM6CisgICAgICAgIHN0YXRpYyBSZWY8UmVh
ZGVyPiBjcmVhdGUoUmVhZGFibGVKU1N0cmVhbSYpOworICAgIHByaXZhdGU6CisgICAgICAgIGV4
cGxpY2l0IFJlYWRlcihSZWFkYWJsZUpTU3RyZWFtJik7CisgICAgfTsKKworICAgIGNsYXNzIFNv
dXJjZTogcHVibGljIFJlYWRhYmxlU3RyZWFtU291cmNlIHsKKyAgICBwdWJsaWM6CisgICAgICAg
IHN0YXRpYyBSZWY8U291cmNlPiBjcmVhdGUoSlNDOjpFeGVjU3RhdGUmKTsKKworICAgICAgICBK
U0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KCk7CisgICAgICAgIHZvaWQgc3RhcnQoSlND
OjpFeGVjU3RhdGUmLCBSZWFkYWJsZUpTU3RyZWFtJik7CisKKyAgICBwcml2YXRlOgorICAgICAg
ICBTb3VyY2UoSlNDOjpFeGVjU3RhdGUmKTsKKworICAgICAgICBKU0M6OlN0cm9uZzxKU0M6OkpT
T2JqZWN0PiBtX3NvdXJjZTsKKyAgICB9OworCitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZWFk
YWJsZUpTU3RyZWFtPiBjcmVhdGUoSlNDOjpFeGVjU3RhdGUmLCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0Jik7CisgICAgdmlydHVhbCBSZWY8UmVhZGFibGVTdHJlYW1SZWFkZXI+IGNyZWF0ZVJlYWRl
cigpIG92ZXJyaWRlOworCisgICAgUmVhZGFibGVKU1N0cmVhbTo6U291cmNlJiBqc1NvdXJjZSgp
OworICAgIEpTQzo6SlNWYWx1ZSBqc0NvbnRyb2xsZXIoSlNDOjpFeGVjU3RhdGUmLCBKU0RPTUds
b2JhbE9iamVjdCopOworCitwcml2YXRlOgorICAgIFJlYWRhYmxlSlNTdHJlYW0oU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYsIFJlZjxSZWFkYWJsZUpTU3RyZWFtOjpTb3VyY2U+JiYpOworCisgICAg
c3RkOjp1bmlxdWVfcHRyPFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlcj4gbV9jb250cm9sbGVyOwor
fTsKKwordm9pZCBzZXRJbnRlcm5hbFNsb3RUb09iamVjdChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
SlNWYWx1ZSwgSlNDOjpQcml2YXRlTmFtZSYsIEpTQzo6SlNWYWx1ZSk7CitKU0M6OkpTVmFsdWUg
Z2V0SW50ZXJuYWxTbG90RnJvbU9iamVjdChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwg
SlNDOjpQcml2YXRlTmFtZSYpOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBFTkFCTEUoU1RSRUFNU19BUEkpCisKKyNlbmRpZiAvLyBSZWFkYWJsZUpTU3RyZWFtX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtSlNTb3Vy
Y2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW1KU1NvdXJj
ZS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk0ZTkxMGI3MDdjMmRmZTVmYTdk
NzM0MDc5ODU3YjQ1Y2QxOWQ5ZWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW1KU1Nv
dXJjZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxNzkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxNSBDYW5vbiBJbmMuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCwgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSByZXF1aXJlZCB0byBiZSBt
ZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFt
ZSBvZiBDYW5vbiBJbmMuIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAg
ICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQ0FOT04gSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
LSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIENBTk9O
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgotICogQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TAotICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKLSAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCi0gKiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLAotICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlJlYWRhYmxlU3RyZWFtSlNTb3Vy
Y2UuaCIKLQotI2lmIEVOQUJMRShTVFJFQU1TX0FQSSkKLQotI2luY2x1ZGUgIkRPTVdyYXBwZXJX
b3JsZC5oIgotI2luY2x1ZGUgIkpTRE9NUHJvbWlzZS5oIgotI2luY2x1ZGUgIkpTUmVhZGFibGVT
dHJlYW0uaCIKLSNpbmNsdWRlICJKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5oIgotI2luY2x1
ZGUgIk5vdEltcGxlbWVudGVkLmgiCi0jaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5o
IgotI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4KLSNpbmNsdWRlIDxydW50aW1lL0pTQ0pTVmFs
dWVJbmxpbmVzLmg+Ci0jaW5jbHVkZSA8cnVudGltZS9KU1N0cmluZy5oPgotI2luY2x1ZGUgPHJ1
bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oPgotCi11c2luZyBuYW1lc3BhY2UgSlNDOwotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLXZvaWQgc2V0SW50ZXJuYWxTbG90VG9PYmplY3QoRXhlY1N0YXRl
KiBleGVjLCBKU1ZhbHVlIG9iamVjdFZhbHVlLCBQcml2YXRlTmFtZSYgbmFtZSwgSlNWYWx1ZSB2
YWx1ZSkKLXsKLSAgICBKU09iamVjdCogb2JqZWN0ID0gb2JqZWN0VmFsdWUudG9PYmplY3QoZXhl
Yyk7Ci0gICAgUHV0UHJvcGVydHlTbG90IHByb3BlcnR5U2xvdChvYmplY3RWYWx1ZSk7Ci0gICAg
b2JqZWN0LT5wdXQob2JqZWN0LCBleGVjLCBJZGVudGlmaWVyOjpmcm9tVWlkKG5hbWUpLCB2YWx1
ZSwgcHJvcGVydHlTbG90KTsKLX0KLQotSlNWYWx1ZSBnZXRJbnRlcm5hbFNsb3RGcm9tT2JqZWN0
KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBvYmplY3RWYWx1ZSwgUHJpdmF0ZU5hbWUmIG5hbWUp
Ci17Ci0gICAgSlNPYmplY3QqIG9iamVjdCA9IG9iamVjdFZhbHVlLnRvT2JqZWN0KGV4ZWMpOwot
ICAgIFByb3BlcnR5U2xvdCBwcm9wZXJ0eVNsb3Qob2JqZWN0VmFsdWUpOwotCi0gICAgSWRlbnRp
ZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tVWlkKG5hbWUpOwotICAgIGlmICgh
b2JqZWN0LT5nZXRPd25Qcm9wZXJ0eVNsb3Qob2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHBy
b3BlcnR5U2xvdCkpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlKCk7Ci0gICAgcmV0dXJuIHByb3Bl
cnR5U2xvdC5nZXRWYWx1ZShleGVjLCBwcm9wZXJ0eU5hbWUpOwotfQotCi1zdGF0aWMgaW5saW5l
IEpTVmFsdWUgZ2V0UHJvcGVydHlGcm9tT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3Qq
IG9iamVjdCwgY29uc3QgY2hhciogaWRlbnRpZmllcikKLXsKLSAgICByZXR1cm4gb2JqZWN0LT5n
ZXQoZXhlYywgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhleGVjLCBpZGVudGlmaWVyKSk7Ci19Ci0K
LXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBjYWxsRnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjLCBKU1Zh
bHVlIGpzRnVuY3Rpb24sIEpTVmFsdWUgdGhpc1ZhbHVlLCBjb25zdCBBcmdMaXN0JiBhcmd1bWVu
dHMsIEpTVmFsdWUqIGV4Y2VwdGlvbikKLXsKLSAgICBDYWxsRGF0YSBjYWxsRGF0YTsKLSAgICBD
YWxsVHlwZSBjYWxsVHlwZSA9IGdldENhbGxEYXRhKGpzRnVuY3Rpb24sIGNhbGxEYXRhKTsKLSAg
ICByZXR1cm4gY2FsbChleGVjLCBqc0Z1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIHRoaXNW
YWx1ZSwgYXJndW1lbnRzLCBleGNlcHRpb24pOwotfQotCi1SZWY8UmVhZGFibGVTdHJlYW1KU1Nv
dXJjZT4gUmVhZGFibGVTdHJlYW1KU1NvdXJjZTo6Y3JlYXRlKEpTQzo6RXhlY1N0YXRlKiBleGVj
KQotewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlYWRhYmxlU3RyZWFtSlNTb3VyY2UoZXhl
YykpOwotfQotCi1SZWFkYWJsZVN0cmVhbUpTU291cmNlOjpSZWFkYWJsZVN0cmVhbUpTU291cmNl
KEpTQzo6RXhlY1N0YXRlKiBleGVjKQotewotICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIWV4ZWMt
PmFyZ3VtZW50Q291bnQoKSB8fCBleGVjLT5hcmd1bWVudCgwKS5pc09iamVjdCgpLCAiQ2FsbGVy
IG9mIFJlYWRhYmxlU3RyZWFtSlNTb3VyY2UgY29uc3RydWN0b3Igc2hvdWxkIGVuc3VyZSB0aGF0
IHBhc3NlZCBhcmd1bWVudCBpZiBhbnkgaXMgYW4gb2JqZWN0LiIpOwotICAgIEpTT2JqZWN0KiBz
b3VyY2UgPSAgZXhlYy0+YXJndW1lbnRDb3VudCgpID8gZXhlYy0+YXJndW1lbnQoMCkuZ2V0T2Jq
ZWN0KCkgOiBKU0ZpbmFsT2JqZWN0OjpjcmVhdGUoZXhlYy0+dm0oKSwgSlNGaW5hbE9iamVjdDo6
Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPnZtKCksIGV4ZWMtPmNhbGxlZSgpLT5nbG9iYWxPYmplY3Qo
KSwganNOdWxsKCksIDEpKTsKLSAgICBtX3NvdXJjZS5zZXQoZXhlYy0+dm0oKSwgc291cmNlKTsK
LX0KLQotUmVhZGFibGVTdHJlYW1KU1NvdXJjZTo6flJlYWRhYmxlU3RyZWFtSlNTb3VyY2UoKQot
ewotfQotCi1zdGF0aWMgdm9pZCBzdGFydFJlYWRhYmxlU3RyZWFtQXN5bmMoUmVhZGFibGVTdHJl
YW0mIHJlYWRhYmxlU3RyZWFtKQotewotICAgIFJlZlB0cjxSZWFkYWJsZVN0cmVhbT4gc3RyZWFt
ID0gJnJlYWRhYmxlU3RyZWFtOwotICAgIHN0cmVhbS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LT5wb3N0VGFzayhbc3RyZWFtXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgewotICAgICAgICBz
dHJlYW0tPnN0YXJ0KCk7Ci0gICAgfSk7Ci19Ci0KLUpTRE9NR2xvYmFsT2JqZWN0KiBSZWFkYWJs
ZVN0cmVhbUpTU291cmNlOjpnbG9iYWxPYmplY3QoKQotewotICAgIHJldHVybiBqc0R5bmFtaWND
YXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4obV9zb3VyY2UtPmdsb2JhbE9iamVjdCgpKTsKLX0KLQot
dm9pZCBSZWFkYWJsZVN0cmVhbUpTU291cmNlOjpzdGFydChFeGVjU3RhdGUmIGV4ZWMsIFJlYWRh
YmxlSlNTdHJlYW0mIHJlYWRhYmxlU3RyZWFtKQotewotICAgIEpTTG9ja0hvbGRlciBsb2NrKCZl
eGVjKTsKLQotICAgIEpTVmFsdWUgc3RhcnRGdW5jdGlvbiA9IGdldFByb3BlcnR5RnJvbU9iamVj
dCgmZXhlYywgbV9zb3VyY2UuZ2V0KCksICJzdGFydCIpOwotICAgIGlmICghc3RhcnRGdW5jdGlv
bi5pc0Z1bmN0aW9uKCkpIHsKLSAgICAgICAgaWYgKCFzdGFydEZ1bmN0aW9uLmlzVW5kZWZpbmVk
KCkpCi0gICAgICAgICAgICB0aHJvd1ZNRXJyb3IoJmV4ZWMsIGNyZWF0ZVR5cGVFcnJvcigmZXhl
YywgQVNDSUlMaXRlcmFsKCJSZWFkYWJsZVN0cmVhbSBjb25zdHJ1Y3RvciBvYmplY3Qgc3RhcnQg
cHJvcGVydHkgc2hvdWxkIGJlIGEgZnVuY3Rpb24uIikpKTsKLSAgICAgICAgZWxzZQotICAgICAg
ICAgICAgc3RhcnRSZWFkYWJsZVN0cmVhbUFzeW5jKHJlYWRhYmxlU3RyZWFtKTsKLSAgICAgICAg
cmV0dXJuOwotICAgIH0KLQotICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3VtZW50czsKLSAg
ICBhcmd1bWVudHMuYXBwZW5kKHJlYWRhYmxlU3RyZWFtLmpzQ29udHJvbGxlcihleGVjLCBnbG9i
YWxPYmplY3QoKSkpOwotCi0gICAgSlNWYWx1ZSBleGNlcHRpb247Ci0gICAgY2FsbEZ1bmN0aW9u
KCZleGVjLCBzdGFydEZ1bmN0aW9uLCBtX3NvdXJjZS5nZXQoKSwgYXJndW1lbnRzLCAmZXhjZXB0
aW9uKTsKLQotICAgIGlmIChleGNlcHRpb24pIHsKLSAgICAgICAgdGhyb3dWTUVycm9yKCZleGVj
LCBleGNlcHRpb24pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgLy8gRklYTUU6IElt
cGxlbWVudCBoYW5kbGluZyBwcm9taXNlIGFzIHJlc3VsdCBvZiBjYWxsaW5nIHN0YXJ0IGZ1bmN0
aW9uLgotICAgIHN0YXJ0UmVhZGFibGVTdHJlYW1Bc3luYyhyZWFkYWJsZVN0cmVhbSk7Ci19Ci0K
LVJlZjxSZWFkYWJsZUpTU3RyZWFtPiBSZWFkYWJsZUpTU3RyZWFtOjpjcmVhdGUoRXhlY1N0YXRl
JiBleGVjLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KQot
ewotICAgIFJlZjxSZWFkYWJsZVN0cmVhbUpTU291cmNlPiBzb3VyY2UgPSBSZWFkYWJsZVN0cmVh
bUpTU291cmNlOjpjcmVhdGUoJmV4ZWMpOwotICAgIFJlZjxSZWFkYWJsZUpTU3RyZWFtPiByZWFk
YWJsZVN0cmVhbSA9IGFkb3B0UmVmKCpuZXcgUmVhZGFibGVKU1N0cmVhbShzY3JpcHRFeGVjdXRp
b25Db250ZXh0LCBXVEY6Om1vdmUoc291cmNlKSkpOwotICAgIHJlYWRhYmxlU3RyZWFtLT5qc1Nv
dXJjZSgpLnN0YXJ0KGV4ZWMsIHJlYWRhYmxlU3RyZWFtLmdldCgpKTsKLSAgICByZXR1cm4gcmVh
ZGFibGVTdHJlYW07Ci19Ci0KLVJlZjxSZWFkYWJsZVN0cmVhbVJlYWRlcj4gUmVhZGFibGVKU1N0
cmVhbTo6Y3JlYXRlUmVhZGVyKCkKLXsKLSAgICByZXR1cm4gUmVhZGVyOjpjcmVhdGUoKnRoaXMp
OwotfQotCi1SZWFkYWJsZUpTU3RyZWFtOjpSZWFkYWJsZUpTU3RyZWFtKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIFJlZjxSZWFkYWJsZVN0cmVhbUpTU291
cmNlPiYmIHNvdXJjZSkKLSAgICA6IFJlYWRhYmxlU3RyZWFtKHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQsIFdURjo6bW92ZShzb3VyY2UpKQotewotfQotCi1SZWFkYWJsZVN0cmVhbUpTU291cmNlJiBS
ZWFkYWJsZUpTU3RyZWFtOjpqc1NvdXJjZSgpCi17Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFJl
YWRhYmxlU3RyZWFtSlNTb3VyY2UmPihzb3VyY2UoKSk7Ci19Ci0KLUpTVmFsdWUgUmVhZGFibGVK
U1N0cmVhbTo6anNDb250cm9sbGVyKEV4ZWNTdGF0ZSYgZXhlYywgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCkKLXsKLSAgICBpZiAoIW1fY29udHJvbGxlcikKLSAgICAgICAgbV9jb250
cm9sbGVyID0gc3RkOjptYWtlX3VuaXF1ZTxSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXI+KCp0aGlz
KTsKLSAgICByZXR1cm4gdG9KUygmZXhlYywgZ2xvYmFsT2JqZWN0LCBtX2NvbnRyb2xsZXIuZ2V0
KCkpOwotfQotCi1SZWY8UmVhZGFibGVKU1N0cmVhbTo6UmVhZGVyPiBSZWFkYWJsZUpTU3RyZWFt
OjpSZWFkZXI6OmNyZWF0ZShSZWFkYWJsZUpTU3RyZWFtJiBzdHJlYW0pCi17Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgUmVhZGVyKHN0cmVhbSkpOwotfQotCi1SZWFkYWJsZUpTU3RyZWFtOjpS
ZWFkZXI6OlJlYWRlcihSZWFkYWJsZUpTU3RyZWFtJiByZWFkYWJsZVN0cmVhbSkKLSAgICA6IFJl
YWRhYmxlU3RyZWFtUmVhZGVyKHJlYWRhYmxlU3RyZWFtKQotewotfQotCi19IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvUmVhZGFibGVTdHJlYW1KU1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
UmVhZGFibGVTdHJlYW1KU1NvdXJjZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAz
MGUzYjFkYWI0OTZlZDdhOWY3NmRhNzE1ZDBhZGVmZjVmZjMwMDY1Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1JlYWRhYmxlU3RyZWFtSlNTb3VyY2UuaAorKysgL2Rldi9udWxsCkBAIC0xLDkzICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDJPMTUgQ2Fub24gSW5jLiAyMDE1Ci0gKiBDb3B5cmlnaHQg
KEMpIDIwMTUgSWdhbGlhIFMuTC4gMjAxNQotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkLCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIHJlcXVpcmVkIHRvIGJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIENhbm9uIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBDQU5PTiBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5E
IEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQ0FOT04gSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SCi0gKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCi0gKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgotICogU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIKLSAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCi0gKiBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFJlYWRhYmxlU3RyZWFtSlNT
b3VyY2VfaAotI2RlZmluZSBSZWFkYWJsZVN0cmVhbUpTU291cmNlX2gKLQotI2lmIEVOQUJMRShT
VFJFQU1TX0FQSSkKLQotI2luY2x1ZGUgIlJlYWRhYmxlU3RyZWFtLmgiCi0jaW5jbHVkZSAiUmVh
ZGFibGVTdHJlYW1SZWFkZXIuaCIKLSNpbmNsdWRlICJSZWFkYWJsZVN0cmVhbVNvdXJjZS5oIgot
I2luY2x1ZGUgPGhlYXAvU3Ryb25nLmg+Ci0jaW5jbHVkZSA8aGVhcC9TdHJvbmdJbmxpbmVzLmg+
Ci0jaW5jbHVkZSA8cnVudGltZS9KU0NKU1ZhbHVlLmg+Ci0jaW5jbHVkZSA8cnVudGltZS9Qcml2
YXRlTmFtZS5oPgotI2luY2x1ZGUgPHd0Zi9SZWYuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
Ci1jbGFzcyBKU0RPTUdsb2JhbE9iamVjdDsKLWNsYXNzIFJlYWRhYmxlSlNTdHJlYW07Ci1jbGFz
cyBSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXI7Ci0KLWNsYXNzIFJlYWRhYmxlU3RyZWFtSlNTb3Vy
Y2U6IHB1YmxpYyBSZWFkYWJsZVN0cmVhbVNvdXJjZSB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJl
ZjxSZWFkYWJsZVN0cmVhbUpTU291cmNlPiBjcmVhdGUoSlNDOjpFeGVjU3RhdGUqKTsKLSAgICB+
UmVhZGFibGVTdHJlYW1KU1NvdXJjZSgpOwotCi0gICAgSlNET01HbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCgpOwotICAgIHZvaWQgc3RhcnQoSlNDOjpFeGVjU3RhdGUmLCBSZWFkYWJsZUpTU3Ry
ZWFtJik7Ci0KLXByaXZhdGU6Ci0gICAgUmVhZGFibGVTdHJlYW1KU1NvdXJjZShKU0M6OkV4ZWNT
dGF0ZSopOwotCi0gICAgLy8gT2JqZWN0IHBhc3NlZCB0byBjb25zdHJ1Y3Rvci4KLSAgICBKU0M6
OlN0cm9uZzxKU0M6OkpTT2JqZWN0PiBtX3NvdXJjZTsKLX07Ci0KLWNsYXNzIFJlYWRhYmxlSlNT
dHJlYW06IHB1YmxpYyBSZWFkYWJsZVN0cmVhbSB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxS
ZWFkYWJsZUpTU3RyZWFtPiBjcmVhdGUoSlNDOjpFeGVjU3RhdGUmLCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0Jik7Ci0gICAgdmlydHVhbCBSZWY8UmVhZGFibGVTdHJlYW1SZWFkZXI+IGNyZWF0ZVJl
YWRlcigpIG92ZXJyaWRlOwotCi0gICAgUmVhZGFibGVTdHJlYW1KU1NvdXJjZSYganNTb3VyY2Uo
KTsKLSAgICBKU0M6OkpTVmFsdWUganNDb250cm9sbGVyKEpTQzo6RXhlY1N0YXRlJiwgSlNET01H
bG9iYWxPYmplY3QqKTsKLQotcHJpdmF0ZToKLSAgICBSZWFkYWJsZUpTU3RyZWFtKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmLCBSZWY8UmVhZGFibGVTdHJlYW1KU1NvdXJjZT4mJik7Ci0KLSAgICBj
bGFzcyBSZWFkZXI6IHB1YmxpYyBSZWFkYWJsZVN0cmVhbVJlYWRlciB7Ci0gICAgcHVibGljOgot
ICAgICAgICBzdGF0aWMgUmVmPFJlYWRlcj4gY3JlYXRlKFJlYWRhYmxlSlNTdHJlYW0mKTsKLSAg
ICBwcml2YXRlOgotICAgICAgICBleHBsaWNpdCBSZWFkZXIoUmVhZGFibGVKU1N0cmVhbSYpOwot
ICAgIH07Ci0KLSAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVhZGFibGVTdHJlYW1Db250cm9sbGVyPiBt
X2NvbnRyb2xsZXI7Ci19OwotCi12b2lkIHNldEludGVybmFsU2xvdFRvT2JqZWN0KEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OlByaXZhdGVOYW1lJiwgSlNDOjpKU1ZhbHVlKTsK
LUpTQzo6SlNWYWx1ZSBnZXRJbnRlcm5hbFNsb3RGcm9tT2JqZWN0KEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpKU1ZhbHVlLCBKU0M6OlByaXZhdGVOYW1lJik7Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKLQotI2VuZGlmIC8vIEVOQUJMRShTVFJFQU1TX0FQSSkKLQotI2VuZGlmIC8vIFJlYWRhYmxl
U3RyZWFtSlNTb3VyY2VfaAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>