<?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>142109</bug_id>
          
          <creation_ts>2015-02-27 14:55:42 -0800</creation_ts>
          <short_desc>Add WebKit2 SPI to create a DOM File object</short_desc>
          <delta_ts>2015-02-27 23:30:43 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>142127</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>andersca</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ossy</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1072847</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2015-02-27 14:55:42 -0800</bug_when>
    <thetext>Add WebKit2 SPI to create a DOM File object</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1072851</commentid>
    <comment_count>1</comment_count>
      <attachid>247558</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2015-02-27 14:59:29 -0800</bug_when>
    <thetext>Created attachment 247558
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1072853</commentid>
    <comment_count>2</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2015-02-27 15:01:04 -0800</bug_when>
    <thetext>&lt;rdar://problem/19982472&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1072878</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-02-27 15:37:38 -0800</bug_when>
    <thetext>Looking at trying to fix the build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1072906</commentid>
    <comment_count>4</comment_count>
      <attachid>247571</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-02-27 16:08:31 -0800</bug_when>
    <thetext>Created attachment 247571
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1072925</commentid>
    <comment_count>5</comment_count>
      <attachid>247571</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-27 16:42:46 -0800</bug_when>
    <thetext>Comment on attachment 247571
Patch

Clearing flags on attachment: 247571

Committed r180798: &lt;http://trac.webkit.org/changeset/180798&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1072926</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-27 16:42:49 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1073005</commentid>
    <comment_count>7</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-02-27 23:30:43 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 247571 [details]
&gt; Patch
&gt; 
&gt; Clearing flags on attachment: 247571
&gt; 
&gt; Committed r180798: &lt;http://trac.webkit.org/changeset/180798&gt;

Buildfix landed in http://trac.webkit.org/changeset/180817</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247558</attachid>
            <date>2015-02-27 14:59:29 -0800</date>
            <delta_ts>2015-02-27 16:08:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142109-20150227145914.patch</filename>
            <type>text/plain</type>
            <size>48916</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4MDc4MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDE1LTAyLTI3ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIFdlYktpdDIgU1BJIHRvIGNyZWF0
ZSBhIERPTSBGaWxlIG9iamVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQyMTA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
IE1ha2UgPFdlYkNvcmUvRmlsZS5oPiAoYW5kIGFzc29jaWF0ZWQgZmlsZXMpIGF2YWlsYWJsZSB0
byBXZWJLaXQyLgorCiAyMDE1LTAyLTI3ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNv
bT4KIAogICAgICAgICBBZGQgYSAiYmxvY2stY29va2llcyIgcnVsZSB0byB0aGUgdXNlciBjb250
ZW50IGZpbHRlci4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE4MDc3MikKKysrIFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTE1Niw3
ICsxMTU2LDcgQEAKIAkJMkUwODg4RDUxMTQ4ODQ4QTAwQUY0MjY1IC8qIEpTRE9NRm9ybURhdGEu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFMDg4OEQz
MTE0ODg0OEEwMEFGNDI2NSAvKiBKU0RPTUZvcm1EYXRhLmggKi87IH07CiAJCTJFMDg4OEU2MTE0
ODg0RTIwMEFGNDI2NSAvKiBKU0RPTUZvcm1EYXRhQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFMDg4OEU1MTE0ODg0RTIwMEFGNDI2NSAv
KiBKU0RPTUZvcm1EYXRhQ3VzdG9tLmNwcCAqLzsgfTsKIAkJMkUyRDk5Q0QxMEUyQkJEQTAwNDk2
MzM3IC8qIEpTQmxvYi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyRTJEOTlDQjEwRTJCQkRBMDA0OTYzMzcgLyogSlNCbG9iLmNwcCAqLzsgfTsKLQkJ
MkUyRDk5Q0UxMEUyQkJEQTAwNDk2MzM3IC8qIEpTQmxvYi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkUyRDk5Q0MxMEUyQkJEQTAwNDk2MzM3IC8qIEpT
QmxvYi5oICovOyB9OworCQkyRTJEOTlDRTEwRTJCQkRBMDA0OTYzMzcgLyogSlNCbG9iLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTJEOTlDQzEwRTJC
QkRBMDA0OTYzMzcgLyogSlNCbG9iLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMkUyRDk5RTcxMEUyQkMxQzAwNDk2MzM3IC8qIERPTUJsb2IuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFMkQ5OUU1MTBF
MkJDMUMwMDQ5NjMzNyAvKiBET01CbG9iLmggKi87IH07CiAJCTJFMkQ5OUU4MTBFMkJDMUMwMDQ5
NjMzNyAvKiBET01CbG9iLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMkUyRDk5RTYxMEUyQkMxQzAwNDk2MzM3IC8qIERPTUJsb2IubW0gKi87IH07CiAJ
CTJFMkQ5OUVBMTBFMkJDMzgwMDQ5NjMzNyAvKiBET01CbG9iSW50ZXJuYWwuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFMkQ5OUU5MTBFMkJDMzgwMDQ5
NjMzNyAvKiBET01CbG9iSW50ZXJuYWwuaCAqLzsgfTsKQEAgLTI1MDEsNiArMjUwMSw3IEBACiAJ
CTdDNzRENDNDMTg4MjQwMDQwMEU1RUQ1NyAvKiBVVGV4dFByb3ZpZGVyVVRGMTYuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNzRENDNBMTg4MjQwMDQw
MEU1RUQ1NyAvKiBVVGV4dFByb3ZpZGVyVVRGMTYuaCAqLzsgfTsKIAkJN0M5REJGRUQxQTlDNDlC
MTAwMEQ2QjI1IC8qIEpTSFRNTEF0dGFjaG1lbnRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDOURCRkVCMUE5QzQ5QjEwMDBENkIyNSAv
KiBKU0hUTUxBdHRhY2htZW50RWxlbWVudC5jcHAgKi87IH07CiAJCTdDOURCRkVFMUE5QzQ5QjEw
MDBENkIyNSAvKiBKU0hUTUxBdHRhY2htZW50RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M5REJGRUMxQTlDNDlCMTAwMEQ2QjI1IC8qIEpT
SFRNTEF0dGFjaG1lbnRFbGVtZW50LmggKi87IH07CisJCTdDQzI4OURGMUFBMEZFNUQwMDlBOUNF
MyAvKiBVUkxSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0RFRTM5MzgxNzk3NDI3NDAwMUQ3NTgwIC8qIFVSTFJlZ2lzdHJ5LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0NDNTY0QjgxOEJB
QkVBNjAwMUI5NjUyIC8qIFRlbGVwaG9uZU51bWJlckRldGVjdG9yLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0M1NjRCNjE4QkFCRUE2MDAxQjk2NTIg
LyogVGVsZXBob25lTnVtYmVyRGV0ZWN0b3IuaCAqLzsgfTsKIAkJN0NDNTY0QkExOEJBQzcyMDAw
MUI5NjUyIC8qIFRlbGVwaG9uZU51bWJlckRldGVjdG9yQ29jb2EuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NDNTY0QjkxOEJBQzcyMDAwMUI5NjUy
IC8qIFRlbGVwaG9uZU51bWJlckRldGVjdG9yQ29jb2EuY3BwICovOyB9OwogCQk3Q0M2OTk0MDE5
MUVDNUY1MDBBRjIyNzAgLyogSlNXZWJLaXROYW1lc3BhY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NDNjk5M0UxOTFFQzVGNTAwQUYyMjcwIC8q
IEpTV2ViS2l0TmFtZXNwYWNlLmNwcCAqLzsgfTsKQEAgLTM1MjksMTMgKzM1MzAsMTMgQEAKIAkJ
OTc2N0NFMEIxNDVBQkMxMzAwNUU2NERCIC8qIEV4Y2VwdGlvbkhlYWRlcnMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NjdDRTA5MTQ1QUJDMTIwMDVF
NjREQiAvKiBFeGNlcHRpb25IZWFkZXJzLmggKi87IH07CiAJCTk3NjdDRTBDMTQ1QUJDMTMwMDVF
NjREQiAvKiBFeGNlcHRpb25JbnRlcmZhY2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5NzY3Q0UwQTE0NUFCQzEzMDA1RTY0REIgLyogRXhjZXB0aW9u
SW50ZXJmYWNlcy5oICovOyB9OwogCQk5NzZENkM3ODEyMkI4QTNEMDAxRkQxRjcgLyogQmxvYi5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzZENkM1
OTEyMkI4QTNEMDAxRkQxRjcgLyogQmxvYi5jcHAgKi87IH07Ci0JCTk3NkQ2Qzc5MTIyQjhBM0Qw
MDFGRDFGNyAvKiBCbG9iLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5NzZENkM1QTEyMkI4QTNEMDAxRkQxRjcgLyogQmxvYi5oICovOyB9OworCQk5NzZE
NkM3OTEyMkI4QTNEMDAxRkQxRjcgLyogQmxvYi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTc2RDZDNUExMjJCOEEzRDAwMUZEMUY3IC8qIEJsb2IuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5NzZENkM3
QjEyMkI4QTNEMDAxRkQxRjcgLyogV2ViS2l0QmxvYkJ1aWxkZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc2RDZDNUMxMjJCOEEzRDAwMUZEMUY3
IC8qIFdlYktpdEJsb2JCdWlsZGVyLmNwcCAqLzsgfTsKIAkJOTc2RDZDN0MxMjJCOEEzRDAwMUZE
MUY3IC8qIFdlYktpdEJsb2JCdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5NzZENkM1RDEyMkI4QTNEMDAxRkQxRjcgLyogV2ViS2l0QmxvYkJ1
aWxkZXIuaCAqLzsgfTsKIAkJOTc2RDZDN0UxMjJCOEEzRDAwMUZEMUY3IC8qIEJsb2JVUkwuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc2RDZDNUYx
MjJCOEEzRDAwMUZEMUY3IC8qIEJsb2JVUkwuY3BwICovOyB9OwogCQk5NzZENkM3RjEyMkI4QTNE
MDAxRkQxRjcgLyogQmxvYlVSTC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTc2RDZDNjAxMjJCOEEzRDAwMUZEMUY3IC8qIEJsb2JVUkwuaCAqLzsgfTsK
IAkJOTc2RDZDODAxMjJCOEEzRDAwMUZEMUY3IC8qIEZpbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc2RDZDNjExMjJCOEEzRDAwMUZEMUY3IC8q
IEZpbGUuY3BwICovOyB9OwotCQk5NzZENkM4MTEyMkI4QTNEMDAxRkQxRjcgLyogRmlsZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc2RDZDNjIxMjJC
OEEzRDAwMUZEMUY3IC8qIEZpbGUuaCAqLzsgfTsKKwkJOTc2RDZDODExMjJCOEEzRDAwMUZEMUY3
IC8qIEZpbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDk3NkQ2QzYyMTIyQjhBM0QwMDFGRDFGNyAvKiBGaWxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTc2RDZDODMxMjJCOEEzRDAwMUZEMUY3IC8q
IEZpbGVFcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTc2RDZDNjQxMjJCOEEzRDAwMUZEMUY3IC8qIEZpbGVFcnJvci5oICovOyB9OwogCQk5NzZE
NkM4NTEyMkI4QTNEMDAxRkQxRjcgLyogRmlsZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc2RDZDNjYxMjJCOEEzRDAwMUZEMUY3IC8qIEZp
bGVMaXN0LmNwcCAqLzsgfTsKIAkJOTc2RDZDODYxMjJCOEEzRDAwMUZEMUY3IC8qIEZpbGVMaXN0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzZENkM2
NzEyMkI4QTNEMDAxRkQxRjcgLyogRmlsZUxpc3QuaCAqLzsgfTsKQEAgLTUwMzcsNyArNTAzOCw3
IEBACiAJCUJDMDBGMDA4MEUwQTE4NTUwMEZEMDRFMyAvKiBET01GaWxlTGlzdC5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDBGMDAyMEUwQTE4NTUw
MEZEMDRFMyAvKiBET01GaWxlTGlzdC5tbSAqLzsgfTsKIAkJQkMwMEYwMDkwRTBBMTg1NTAwRkQw
NEUzIC8qIERPTUZpbGVMaXN0SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDBGMDAzMEUwQTE4NTUwMEZEMDRFMyAvKiBET01GaWxlTGlz
dEludGVybmFsLmggKi87IH07CiAJCUJDMDBGMDE0MEUwQTE4OTUwMEZEMDRFMyAvKiBKU0ZpbGUu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwMEYw
MTAwRTBBMTg5NTAwRkQwNEUzIC8qIEpTRmlsZS5jcHAgKi87IH07Ci0JCUJDMDBGMDE1MEUwQTE4
OTUwMEZEMDRFMyAvKiBKU0ZpbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDMDBGMDExMEUwQTE4OTUwMEZEMDRFMyAvKiBKU0ZpbGUuaCAqLzsgfTsK
KwkJQkMwMEYwMTUwRTBBMTg5NTAwRkQwNEUzIC8qIEpTRmlsZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwMEYwMTEwRTBBMTg5NTAwRkQwNEUzIC8q
IEpTRmlsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUJDMDBGMDE2MEUwQTE4OTUwMEZEMDRFMyAvKiBKU0ZpbGVMaXN0LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDBGMDEyMEUwQTE4OTUwMEZE
MDRFMyAvKiBKU0ZpbGVMaXN0LmNwcCAqLzsgfTsKIAkJQkMwMEYwMTcwRTBBMTg5NTAwRkQwNEUz
IC8qIEpTRmlsZUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDMDBGMDEzMEUwQTE4OTUwMEZEMDRFMyAvKiBKU0ZpbGVMaXN0LmggKi87IH07CiAJ
CUJDMDBGMDM2MEUwQTE5REIwMEZEMDRFMyAvKiBET01GaWxlLmggaW4gQ29weSBHZW5lcmF0ZWQg
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzAwRUZGRTBFMEEx
ODU1MDBGRDA0RTMgLyogRE9NRmlsZS5oICovOyB9OwpAQCAtMjQwNzQsNiArMjQwNzUsNyBAQAog
CQkJCTJFRDYwOUJEMTE0NUIwNzEwMEM4Njg0RSAvKiBET01Gb3JtRGF0YS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEY1NERDRTAxODgwRjkwMTAwM0VFREJCIC8qIERPTUdlc3R1cmVFdmVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEY1NERDRTIxODgwRjkwMTAwM0VFREJCIC8qIERPTUdlc3R1cmVF
dmVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKKwkJCQk3Q0MyODlERjFBQTBGRTVEMDA5QTlD
RTMgLyogVVJMUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMUEzN0I2MDk3QzcxNUYw
MDE5RjNEOCAvKiBET01IVE1MLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTk4NDgwODFBMUU2Q0I1
MDBBMTMzMTggLyogRE9NQW5pbWF0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1REY4
MTI3MEFBNzc4NzIwMDQ4NkFENyAvKiBET01IVE1MQW5jaG9yRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8sCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAxODA3ODMpCisrKyBTb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzOCBAQAorMjAxNS0wMi0yNyAgU2Ft
IFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBXZWJLaXQyIFNQSSB0byBj
cmVhdGUgYSBET00gRmlsZSBvYmplY3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE0MjEwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBhIG5ldyBoYW5kbGUgdHlwZSBmb3IgZXhwb3NpbmcgYSBET00g
RmlsZSBvYmplY3QgdG8gc2NyaXB0LiBGb2xsb3cKKyAgICAgICAgdGhlIHBhdHRlcm4gb2YgV0tC
dW5kbGVOb2RlSGFuZGxlUmVmIGFuZCBXS0J1bmRsZVJhbmdlSGFuZGxlUmVmIHdpdGggdGhlCisg
ICAgICAgIG5ldyBjbGFzcyBXS0J1bmRsZUZpbGVIYW5kbGVSZWYuIEl0IGNhbiBiZSBjcmVhdGVk
IGZvciBhIHNwZWNpZmljIHBhdGgsCisgICAgICAgIGFuZCB0aGVuIHRoZSBKUyB3cmFwcGVyIGNh
biBiZSBvYnRhaW5lZCB2aWEgV0tCdW5kbGVGcmFtZUdldEphdmFTY3JpcHRXcmFwcGVyRm9yRmls
ZUZvcldvcmxkLgorCisgICAgICAgICogU2hhcmVkL0FQSS9BUElPYmplY3QuaDoKKyAgICAgICAg
KiBTaGFyZWQvQVBJL2MvV0tCYXNlLmg6CisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVBUElDYXN0Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZUZpbGVIYW5kbGVSZWYuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdLQnVuZGxl
RmlsZUhhbmRsZUdldFR5cGVJRCk6CisgICAgICAgIChXS0J1bmRsZUZpbGVIYW5kbGVDcmVhdGVX
aXRoUGF0aCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1
bmRsZUZpbGVIYW5kbGVSZWYuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmNwcDoKKyAgICAgICAgKFdLQnVuZGxlRnJhbWVH
ZXRKYXZhU2NyaXB0V3JhcHBlckZvckZpbGVGb3JXb3JsZCk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVGaWxlSGFuZGxlLmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJLaXQ6OmRvbUhhbmRsZUNhY2hlKToKKyAgICAgICAgKFdlYktpdDo6
SW5qZWN0ZWRCdW5kbGVGaWxlSGFuZGxlOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpJbmpl
Y3RlZEJ1bmRsZUZpbGVIYW5kbGU6OmdldE9yQ3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6SW5q
ZWN0ZWRCdW5kbGVGaWxlSGFuZGxlOjpJbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGUpOgorICAgICAg
ICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGU6On5JbmplY3RlZEJ1bmRsZUZpbGVI
YW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGU6OmNvcmVG
aWxlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1
bmRsZUZpbGVIYW5kbGUuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWU6OmpzV3JhcHBlckZvcldvcmxk
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaDoKKwogMjAxNS0wMi0y
NyAgQmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBsZS5jb20+CiAKICAgICAgICAgTG9va3VwIHBhbmVs
IGRpc21pc3NlcyB3aGVuIHBhZ2VzIGFyZSBsb2FkaW5nIGluIG90aGVyIHRhYnMvd2luZG93cwpJ
bmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElPYmplY3QuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSU9iamVjdC5oCShyZXZpc2lvbiAxODA3NzIp
CisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSU9iamVjdC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xNTQsNiArMTU0LDcgQEAgcHVibGljOgogICAgICAgICBCdW5kbGVCYWNrRm9yd2FyZExp
c3RJdGVtLAogICAgICAgICBCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLAogICAgICAg
ICBCdW5kbGVET01XaW5kb3dFeHRlbnNpb24sCisgICAgICAgIEJ1bmRsZUZpbGVIYW5kbGUsCiAg
ICAgICAgIEJ1bmRsZUZyYW1lLAogICAgICAgICBCdW5kbGVIaXRUZXN0UmVzdWx0LAogICAgICAg
ICBCdW5kbGVJbnNwZWN0b3IsCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tC
YXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5o
CShyZXZpc2lvbiAxODA3NzIpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTE0Niw2ICsxNDYsNyBAQCB0eXBlZGVmIGNvbnN0IHN0cnVj
dCBPcGFxdWVXS0J1bmRsZUJhY2tGCiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0J1bmRs
ZUJhY2tGb3J3YXJkTGlzdEl0ZW0qIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbVJlZjsKIHR5
cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLQnVuZGxlRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiog
V0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3Bh
cXVlV0tCdW5kbGVET01XaW5kb3dFeHRlbnNpb24qIFdLQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9u
UmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tCdW5kbGVGaWxlSGFuZGxlKiBXS0J1
bmRsZUZpbGVIYW5kbGVSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0J1bmRsZUZy
YW1lKiBXS0J1bmRsZUZyYW1lUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tCdW5k
bGVIaXRUZXN0UmVzdWx0KiBXS0J1bmRsZUhpdFRlc3RSZXN1bHRSZWY7CiB0eXBlZGVmIGNvbnN0
IHN0cnVjdCBPcGFxdWVXS0J1bmRsZUluc3BlY3RvciogV0tCdW5kbGVJbnNwZWN0b3JSZWY7Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCShyZXZpc2lvbiAxODA3NzIpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTExMzAsNiArMTEzMCwxMCBAQAog
CQk3Q0IxNkZGMjE3MjRCQTI4MDA3QTBBOTUgLyogY29tLm1hY3JvbWVkaWEuRmxhc2ggUGxheWVy
LnBsdWdpbi5zYiBpbiBDb3B5IFBsdWctaW4gU2FuZGJveCBQcm9maWxlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0IxNkZFNTE3MjRCOUI1MDA3QTBBOTUgLyogY29tLm1h
Y3JvbWVkaWEuRmxhc2ggUGxheWVyLnBsdWdpbi5zYiAqLzsgfTsKIAkJN0NCMTZGRjMxNzI0QkEy
RjAwN0EwQTk1IC8qIGNvbS5taWNyb3NvZnQuU2lsdmVybGlnaHRQbHVnaW4uc2IgaW4gQ29weSBQ
bHVnLWluIFNhbmRib3ggUHJvZmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0NCMTZGRTYxNzI0QjlCNTAwN0EwQTk1IC8qIGNvbS5taWNyb3NvZnQuU2lsdmVybGlnaHRQ
bHVnaW4uc2IgKi87IH07CiAJCTdDQjE2RkY0MTcyNEJBMzAwMDdBMEE5NSAvKiBjb20ub3JhY2xl
LmphdmEuSmF2YUFwcGxldFBsdWdpbi5zYiBpbiBDb3B5IFBsdWctaW4gU2FuZGJveCBQcm9maWxl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0IxNkZFNzE3MjRCOUI1MDA3
QTBBOTUgLyogY29tLm9yYWNsZS5qYXZhLkphdmFBcHBsZXRQbHVnaW4uc2IgKi87IH07CisJCTdD
QkI4MTFDMUFBMEY4QjEwMDZCMTk0MiAvKiBJbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NCQjgxMUExQUEw
RjhCMTAwNkIxOTQyIC8qIEluamVjdGVkQnVuZGxlRmlsZUhhbmRsZS5jcHAgKi87IH07CisJCTdD
QkI4MTFEMUFBMEY4QjEwMDZCMTk0MiAvKiBJbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDQkI4MTFCMUFBMEY4
QjEwMDZCMTk0MiAvKiBJbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGUuaCAqLzsgfTsKKwkJN0NCQjgx
MjAxQUEwRjk3MDAwNkIxOTQyIC8qIFdLQnVuZGxlRmlsZUhhbmRsZVJlZi5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0JCODExRTFBQTBGOTcwMDA2
QjE5NDIgLyogV0tCdW5kbGVGaWxlSGFuZGxlUmVmLmNwcCAqLzsgfTsKKwkJN0NCQjgxMjExQUEw
Rjk3MDAwNkIxOTQyIC8qIFdLQnVuZGxlRmlsZUhhbmRsZVJlZi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NCQjgxMUYxQUEwRjk3MDAwNkIxOTQyIC8q
IFdLQnVuZGxlRmlsZUhhbmRsZVJlZi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTdDQzk5QTM2MThFRjdDQkMwMDQ4QzhCNCAvKiBXS1NjcmlwdE1l
c3NhZ2VJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gN0NDOTlBMzUxOEVGN0NCQzAwNDhDOEI0IC8qIFdLU2NyaXB0TWVzc2FnZUludGVybmFs
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0ND
Q0M4RkExQTVGNTBGRDAwOEZCMERBIC8qIFdlYk5hdmlnYXRpb25TdGF0ZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0NDQzhGODFBNUY1MEZEMDA4
RkIwREEgLyogV2ViTmF2aWdhdGlvblN0YXRlLmNwcCAqLzsgfTsKIAkJN0NDQ0M4RkIxQTVGNTBG
RDAwOEZCMERBIC8qIFdlYk5hdmlnYXRpb25TdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NDQ0M4RjkxQTVGNTBGRDAwOEZCMERBIC8qIFdlYk5h
dmlnYXRpb25TdGF0ZS5oICovOyB9OwpAQCAtMzMxMyw2ICszMzE3LDEwIEBACiAJCTdDQjE2RkU1
MTcyNEI5QjUwMDdBMEE5NSAvKiBjb20ubWFjcm9tZWRpYS5GbGFzaCBQbGF5ZXIucGx1Z2luLnNi
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9ICJjb20ubWFjcm9tZWRpYS5GbGFzaCBQbGF5ZXIucGx1
Z2luLnNiIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NCMTZGRTYxNzI0QjlCNTAw
N0EwQTk1IC8qIGNvbS5taWNyb3NvZnQuU2lsdmVybGlnaHRQbHVnaW4uc2IgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gY29tLm1pY3Jvc29mdC5TaWx2ZXJsaWdodFBsdWdpbi5zYjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NCMTZGRTcxNzI0QjlCNTAwN0EwQTk1IC8qIGNvbS5vcmFj
bGUuamF2YS5KYXZhQXBwbGV0UGx1Z2luLnNiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IGNvbS5v
cmFjbGUuamF2YS5KYXZhQXBwbGV0UGx1Z2luLnNiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk3Q0JCODExQTFBQTBGOEIxMDA2QjE5NDIgLyogSW5qZWN0ZWRCdW5kbGVGaWxlSGFuZGxl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVuZGxl
RmlsZUhhbmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdDQkI4MTFCMUFB
MEY4QjEwMDZCMTk0MiAvKiBJbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVGaWxlSGFuZGxlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTdDQkI4MTFFMUFBMEY5NzAwMDZCMTk0MiAvKiBXS0J1bmRs
ZUZpbGVIYW5kbGVSZWYuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V0tCdW5kbGVGaWxlSGFuZGxlUmVmLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
N0NCQjgxMUYxQUEwRjk3MDAwNkIxOTQyIC8qIFdLQnVuZGxlRmlsZUhhbmRsZVJlZi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0J1bmRsZUZpbGVIYW5kbGVSZWYuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NDOTlBMzUxOEVGN0NCQzAwNDhDOEI0IC8qIFdL
U2NyaXB0TWVzc2FnZUludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdLU2NyaXB0TWVzc2FnZUludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTdDQ0NDOEY4MUE1RjUwRkQwMDhGQjBEQSAvKiBXZWJOYXZpZ2F0aW9uU3RhdGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViTmF2aWdhdGlvblN0YXRlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NDQ0M4RjkxQTVGNTBGRDAwOEZCMERBIC8q
IFdlYk5hdmlnYXRpb25TdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJOYXZpZ2F0aW9uU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY1NzUs
NiArNjU4Myw4IEBACiAJCQkJOTM1RUVCOTgxMjc3NjE2RDAwMzMyMkI4IC8qIFdLQnVuZGxlQmFj
a0ZvcndhcmRMaXN0SXRlbS5oICovLAogCQkJCTUxRkEyRDc1MTUyMTJFMUUwMEMxQkEwQiAvKiBX
S0J1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5jcHAgKi8sCiAJCQkJNTFGQTJENTQxNTIxMTE4NjAw
QzFCQTBCIC8qIFdLQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uLmggKi8sCisJCQkJN0NCQjgxMUUx
QUEwRjk3MDAwNkIxOTQyIC8qIFdLQnVuZGxlRmlsZUhhbmRsZVJlZi5jcHAgKi8sCisJCQkJN0NC
QjgxMUYxQUEwRjk3MDAwNkIxOTQyIC8qIFdLQnVuZGxlRmlsZUhhbmRsZVJlZi5oICovLAogCQkJ
CUJDRDI1RjE2MTFENkJERTEwMDE2OUIwRSAvKiBXS0J1bmRsZUZyYW1lLmNwcCAqLywKIAkJCQlC
Q0QyNUYxNTExRDZCREUxMDAxNjlCMEUgLyogV0tCdW5kbGVGcmFtZS5oICovLAogCQkJCUJDRjA0
OUU0MTFGRTIwRjYwMEY4NkE1OCAvKiBXS0J1bmRsZUZyYW1lUHJpdmF0ZS5oICovLApAQCAtNjY3
Niw2ICs2Njg2LDggQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTdDNEVEMzI2MUEzMTE5RDkwMDc5
QkQ0OSAvKiBJbmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuY3BwICovLAog
CQkJCTdDNEVEMzI3MUEzMTE5RDkwMDc5QkQ0OSAvKiBJbmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVj
bGFyYXRpb25IYW5kbGUuaCAqLywKKwkJCQk3Q0JCODExQTFBQTBGOEIxMDA2QjE5NDIgLyogSW5q
ZWN0ZWRCdW5kbGVGaWxlSGFuZGxlLmNwcCAqLywKKwkJCQk3Q0JCODExQjFBQTBGOEIxMDA2QjE5
NDIgLyogSW5qZWN0ZWRCdW5kbGVGaWxlSGFuZGxlLmggKi8sCiAJCQkJQkM0QkVFQUExMjBBMEE1
RjAwRkJBMEM3IC8qIEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAgKi8sCiAJCQkJQkM0QkVF
QTkxMjBBMEE1RTAwRkJBMEM3IC8qIEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5oICovLAogCQkJ
CUJDMzNFMEQwMTI0MDhFODYwMDM2MEYzRiAvKiBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNw
cCAqLywKQEAgLTc5MjEsNiArNzkzMyw3IEBACiAJCQkJMkRGOUVFRUMxQTc4MzZFRTAwQjZDRkJF
IC8qIEFQSU5hdmlnYXRpb25BY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNTRDQUNCMTJE
NjQyOTEwMDVDNjdCMCAvKiBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkMwRTYxODMxMkQ2Q0IxRDAwMTJBNzJBIC8qIFdlYkdlb2xvY2F0aW9uTWFuYWdl
clByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTdDQkI4MTFEMUFBMEY4QjEwMDZC
MTk0MiAvKiBJbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
MEU2MDczMTJENkJDMjAwMDEyQTcyQSAvKiBXZWJHZW9sb2NhdGlvblBvc2l0aW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQzFCRTFGMjEyRDU0REJEMDAwNEEyMjggLyogV2ViR2VvbG9jYXRpb25Q
cm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzgwMUMwOUExNDIyOTBDNDAwRkFGOUFGIC8q
IFdlYkhpdFRlc3RSZXN1bHQuaCBpbiBIZWFkZXJzICovLApAQCAtODI4MSw2ICs4Mjk0LDcgQEAK
IAkJCQlCQzQwNzYwRTEyNEZGMDI3MDA2OEYyMEEgLyogV0tVUkxSZXNwb25zZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkM0MDc2MkIxMjRGRjA0MDAwNjhGMjBBIC8qIFdLVVJMUmVzcG9uc2VOUy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMUFGQTNBQzkxOEU2MUM2MTAwM0NDQkFFIC8qIFdLVXNlckNv
bnRlbnRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk3Q0JCODEyMTFBQTBGOTcwMDA2
QjE5NDIgLyogV0tCdW5kbGVGaWxlSGFuZGxlUmVmLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUFG
MDhBNDE5MjY4MkRBMDBCNjM5MEMgLyogV0tVc2VyQ29udGVudENvbnRyb2xsZXJJbnRlcm5hbC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMzc3RUFENDgxN0UyQzc3QjAwMkQxOTNEIC8qIFdLVXNlckNv
bnRlbnRJbmplY3RlZEZyYW1lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjYxMTNFMjkxMjZDRTE5
QjAwNTdEMEE3IC8qIFdLVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmggaW4gSGVhZGVycyAqLywKQEAg
LTk3MjAsNiArOTczNCw3IEBACiAJCQkJMUM4RTI4MzUxMjc1RDczODAwQkM3QkQwIC8qIFdlYklu
c3BlY3RvclByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFDQThCOTM2MTI3Qzc3NEUwMDU3
NkMyQiAvKiBXZWJJbnNwZWN0b3JQcm94eU1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFDQThC
OTQ1MTI3Qzg4MkEwMDU3NkMyQiAvKiBXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQk3Q0JCODExQzFBQTBGOEIxMDA2QjE5NDIgLyogSW5qZWN0
ZWRCdW5kbGVGaWxlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFDODkxRDY1MTlCMTI0
RkYwMEJBNzlERCAvKiBXZWJJbnNwZWN0b3JVSS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQ0E4
Qjk1NDEyN0M4OTE1MDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yVUlNYWMubW0gaW4gU291cmNlcyAq
LywKIAkJCQkxQ0JCRTRBMDE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC05ODIyLDYgKzk4MzcsNyBAQAogCQkJCUMw
MzM3REQ4MTI3QTUxQjYwMDhGRjRGNCAvKiBXZWJUb3VjaEV2ZW50LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTJEQTk0NEEzMTg4NEU0RjAwMEVEODZEQiAvKiBXZWJUb3VjaEV2ZW50SU9TLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUJDQTBFRjgwMTIzMzFFNzgwMDdEM0NGQiAvKiBXZWJVbmRvU3Rl
cC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3Q0JCODEyMDFBQTBGOTcwMDA2QjE5NDIgLyogV0tC
dW5kbGVGaWxlSGFuZGxlUmVmLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBQUYwOEFEMTkyNjkz
NjcwMEI2MzkwQyAvKiBXZWJVc2VyQ29udGVudENvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMUFBRjA4QjcxOTI2OUU2RDAwQjYzOTBDIC8qIFdlYlVzZXJDb250ZW50Q29udHJvbGxl
ck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUFGMDhBMTE5MjY4MUQx
MDBCNjM5MEMgLyogV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuY3BwIGluIFNvdXJjZXMg
Ki8sCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlQVBJQ2FzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVBUElDYXN0LmgJKHJldmlzaW9uIDE4MDc3
MikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGVBUElDYXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDcgQEAgY2xhc3MgSW5q
ZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3Q7CiBjbGFzcyBJbmplY3RlZEJ1bmRsZUJhY2tGb3J3
YXJkTGlzdEl0ZW07CiBjbGFzcyBJbmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5k
bGU7CiBjbGFzcyBJbmplY3RlZEJ1bmRsZURPTVdpbmRvd0V4dGVuc2lvbjsKK2NsYXNzIEluamVj
dGVkQnVuZGxlRmlsZUhhbmRsZTsKIGNsYXNzIEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdDsK
IGNsYXNzIEluamVjdGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbjsKIGNsYXNzIEluamVjdGVkQnVu
ZGxlTm9kZUhhbmRsZTsKQEAgLTU2LDYgKzU3LDcgQEAgV0tfQUREX0FQSV9NQVBQSU5HKFdLQnVu
ZGxlQmFja0ZvcndhcmRMaQogV0tfQUREX0FQSV9NQVBQSU5HKFdLQnVuZGxlQmFja0ZvcndhcmRM
aXN0UmVmLCBJbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdCkKIFdLX0FERF9BUElfTUFQUElO
RyhXS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25SZWYsIEluamVjdGVkQnVuZGxlQ1NTU3R5bGVE
ZWNsYXJhdGlvbkhhbmRsZSkKIFdLX0FERF9BUElfTUFQUElORyhXS0J1bmRsZURPTVdpbmRvd0V4
dGVuc2lvblJlZiwgSW5qZWN0ZWRCdW5kbGVET01XaW5kb3dFeHRlbnNpb24pCitXS19BRERfQVBJ
X01BUFBJTkcoV0tCdW5kbGVGaWxlSGFuZGxlUmVmLCBJbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGUp
CiBXS19BRERfQVBJX01BUFBJTkcoV0tCdW5kbGVGcmFtZVJlZiwgV2ViRnJhbWUpCiBXS19BRERf
QVBJX01BUFBJTkcoV0tCdW5kbGVIaXRUZXN0UmVzdWx0UmVmLCBJbmplY3RlZEJ1bmRsZUhpdFRl
c3RSZXN1bHQpCiBXS19BRERfQVBJX01BUFBJTkcoV0tCdW5kbGVJbnNwZWN0b3JSZWYsIFdlYklu
c3BlY3RvcikKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVGaWxlSGFuZGxlUmVmLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRmlsZUhhbmRsZVJl
Zi5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlRmlsZUhhbmRsZVJlZi5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJXS0J1bmRsZUZpbGVIYW5kbGVSZWYuaCIKKworI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlRmls
ZUhhbmRsZS5oIgorI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldLQnVuZGxlQVBJ
Q2FzdC5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitXS1R5cGVJRCBXS0J1bmRsZUZp
bGVIYW5kbGVHZXRUeXBlSUQoKQoreworICAgIHJldHVybiB0b0FQSShJbmplY3RlZEJ1bmRsZUZp
bGVIYW5kbGU6OkFQSVR5cGUpOworfQorCitXS0J1bmRsZUZpbGVIYW5kbGVSZWYgV0tCdW5kbGVG
aWxlSGFuZGxlQ3JlYXRlV2l0aFBhdGgoV0tTdHJpbmdSZWYgcGF0aFJlZikKK3sKKyAgICByZXR1
cm4gdG9BUEkoSW5qZWN0ZWRCdW5kbGVGaWxlSGFuZGxlOjpjcmVhdGUodG9XVEZTdHJpbmcocGF0
aFJlZikpLmxlYWtSZWYoKSk7Cit9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRmlsZUhhbmRsZVJlZi5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVG
aWxlSGFuZGxlUmVmLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRmlsZUhhbmRsZVJlZi5oCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLQnVuZGxlRmlsZUhh
bmRsZVJlZl9oCisjZGVmaW5lIFdLQnVuZGxlRmlsZUhhbmRsZVJlZl9oCisKKyNpbmNsdWRlIDxX
ZWJLaXQvV0tCYXNlLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5k
aWYKKworV0tfRVhQT1JUIFdLVHlwZUlEIFdLQnVuZGxlRmlsZUhhbmRsZUdldFR5cGVJRCgpOwor
CitXS19FWFBPUlQgV0tCdW5kbGVGaWxlSGFuZGxlUmVmIFdLQnVuZGxlRmlsZUhhbmRsZUNyZWF0
ZVdpdGhQYXRoKFdLU3RyaW5nUmVmIHBhdGgpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNl
bmRpZgorCisKKyNlbmRpZiAvKiBXS0J1bmRsZUZpbGVIYW5kbGVSZWZfaCAqLwpJbmRleDogU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1l
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWUuY3BwCShyZXZpc2lvbiAxODA3NzIpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJBUElBcnJheS5o
IgogI2luY2x1ZGUgIkFQSVNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiSW5qZWN0ZWRCdW5k
bGVGaWxlSGFuZGxlLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0Lmgi
CiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmgiCiAjaW5jbHVkZSAiSW5qZWN0
ZWRCdW5kbGVSYW5nZUhhbmRsZS5oIgpAQCAtMTIyLDYgKzEyMywxMSBAQCBKU1ZhbHVlUmVmIFdL
QnVuZGxlRnJhbWVHZXRKYXZhU2NyaXB0V3JhCiAgICAgcmV0dXJuIHRvSW1wbChmcmFtZVJlZikt
PmpzV3JhcHBlckZvcldvcmxkKHRvSW1wbChyYW5nZUhhbmRsZVJlZiksIHRvSW1wbCh3b3JsZFJl
ZikpOwogfQogCitKU1ZhbHVlUmVmIFdLQnVuZGxlRnJhbWVHZXRKYXZhU2NyaXB0V3JhcHBlckZv
ckZpbGVGb3JXb3JsZChXS0J1bmRsZUZyYW1lUmVmIGZyYW1lUmVmLCBXS0J1bmRsZUZpbGVIYW5k
bGVSZWYgZmlsZUhhbmRsZVJlZiwgV0tCdW5kbGVTY3JpcHRXb3JsZFJlZiB3b3JsZFJlZikKK3sK
KyAgICByZXR1cm4gdG9JbXBsKGZyYW1lUmVmKS0+anNXcmFwcGVyRm9yV29ybGQodG9JbXBsKGZp
bGVIYW5kbGVSZWYpLCB0b0ltcGwod29ybGRSZWYpKTsKK30KKwogV0tTdHJpbmdSZWYgV0tCdW5k
bGVGcmFtZUNvcHlOYW1lKFdLQnVuZGxlRnJhbWVSZWYgZnJhbWVSZWYpCiB7CiAgICAgcmV0dXJu
IHRvQ29waWVkQVBJKHRvSW1wbChmcmFtZVJlZiktPm5hbWUoKSk7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlRnJhbWUuaAkocmV2aXNpb24gMTgwNzcyKQorKysgU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTU1LDYgKzU1LDcgQEAgV0tfRVhQT1JUIFdLQnVuZGxlRnJhbWVSZWYgV0tCdW5kbGVG
cmFtZQogCiBXS19FWFBPUlQgSlNWYWx1ZVJlZiBXS0J1bmRsZUZyYW1lR2V0SmF2YVNjcmlwdFdy
YXBwZXJGb3JOb2RlRm9yV29ybGQoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tCdW5kbGVOb2Rl
SGFuZGxlUmVmIG5vZGVIYW5kbGUsIFdLQnVuZGxlU2NyaXB0V29ybGRSZWYgd29ybGQpOwogV0tf
RVhQT1JUIEpTVmFsdWVSZWYgV0tCdW5kbGVGcmFtZUdldEphdmFTY3JpcHRXcmFwcGVyRm9yUmFu
Z2VGb3JXb3JsZChXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS0J1bmRsZVJhbmdlSGFuZGxlUmVm
IHJhbmdlSGFuZGxlLCBXS0J1bmRsZVNjcmlwdFdvcmxkUmVmIHdvcmxkKTsKK1dLX0VYUE9SVCBK
U1ZhbHVlUmVmIFdLQnVuZGxlRnJhbWVHZXRKYXZhU2NyaXB0V3JhcHBlckZvckZpbGVGb3JXb3Js
ZChXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS0J1bmRsZUZpbGVIYW5kbGVSZWYgZmlsZUhhbmRs
ZSwgV0tCdW5kbGVTY3JpcHRXb3JsZFJlZiB3b3JsZCk7CiAKIFdLX0VYUE9SVCBXS0J1bmRsZVBh
Z2VSZWYgV0tCdW5kbGVGcmFtZUdldFBhZ2UoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSk7CiAKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVk
QnVuZGxlRmlsZUhhbmRsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVGaWxlSGFuZGxlLmNwcAkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9N
L0luamVjdGVkQnVuZGxlRmlsZUhhbmRsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw4
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJbmplY3Rl
ZEJ1bmRsZUZpbGVIYW5kbGUuaCIKKworI2luY2x1ZGUgPFdlYkNvcmUvRmlsZS5oPgorI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKwordHlwZWRlZiBI
YXNoTWFwPEZpbGUqLCBJbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGUqPiBET01IYW5kbGVDYWNoZTsK
Kworc3RhdGljIERPTUhhbmRsZUNhY2hlJiBkb21IYW5kbGVDYWNoZSgpCit7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPERPTUhhbmRsZUNhY2hlPiBjYWNoZTsKKyAgICByZXR1cm4gY2FjaGU7
Cit9CisKK1JlZlB0cjxJbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGU+IEluamVjdGVkQnVuZGxlRmls
ZUhhbmRsZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgcGF0aCkKK3sKKyAgICBhdXRvIGZpbGUgPSBG
aWxlOjpjcmVhdGUocGF0aCk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJbmplY3RlZEJ1bmRs
ZUZpbGVIYW5kbGUoZmlsZS5nZXQoKSkpOworfQorCitSZWZQdHI8SW5qZWN0ZWRCdW5kbGVGaWxl
SGFuZGxlPiBJbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGU6OmdldE9yQ3JlYXRlKEZpbGUqIGZpbGUp
Cit7CisgICAgaWYgKCFmaWxlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIERPTUhh
bmRsZUNhY2hlOjpBZGRSZXN1bHQgcmVzdWx0ID0gZG9tSGFuZGxlQ2FjaGUoKS5hZGQoZmlsZSwg
bnVsbHB0cik7CisgICAgaWYgKCFyZXN1bHQuaXNOZXdFbnRyeSkKKyAgICAgICAgcmV0dXJuIFJl
ZlB0cjxJbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGU+KHJlc3VsdC5pdGVyYXRvci0+dmFsdWUpOwor
CisgICAgUmVmUHRyPEluamVjdGVkQnVuZGxlRmlsZUhhbmRsZT4gZmlsZUhhbmRsZSA9IGFkb3B0
UmVmKG5ldyBJbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGUoKmZpbGUpKTsKKyAgICByZXN1bHQuaXRl
cmF0b3ItPnZhbHVlID0gZmlsZUhhbmRsZS5nZXQoKTsKKyAgICByZXR1cm4gZmlsZUhhbmRsZTsK
K30KKworSW5qZWN0ZWRCdW5kbGVGaWxlSGFuZGxlOjpJbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGUo
RmlsZSYgZmlsZSkKKyAgICA6IG1fZmlsZShmaWxlKQoreworfQorCitJbmplY3RlZEJ1bmRsZUZp
bGVIYW5kbGU6On5JbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGUoKQoreworICAgIGRvbUhhbmRsZUNh
Y2hlKCkucmVtb3ZlKG1fZmlsZS5wdHIoKSk7Cit9CisKK2NvbnN0IEZpbGUqIEluamVjdGVkQnVu
ZGxlRmlsZUhhbmRsZTo6Y29yZUZpbGUoKSBjb25zdAoreworICAgIHJldHVybiBtX2ZpbGUucHRy
KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVGaWxlSGFuZGxlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00v
SW5qZWN0ZWRCdW5kbGVGaWxlSGFuZGxlLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGUu
aAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBJ
bmplY3RlZEJ1bmRsZUZpbGVIYW5kbGVfaAorI2RlZmluZSBJbmplY3RlZEJ1bmRsZUZpbGVIYW5k
bGVfaAorCisjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
KyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgRmlsZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2NsYXNzIEluamVjdGVkQnVuZGxlRmlsZUhhbmRsZSA6IHB1YmxpYyBBUEk6Ok9iamVjdElt
cGw8QVBJOjpPYmplY3Q6OlR5cGU6OkJ1bmRsZUZpbGVIYW5kbGU+IHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUmVmUHRyPEluamVjdGVkQnVuZGxlRmlsZUhhbmRsZT4gY3JlYXRlKGNvbnN0IFdURjo6
U3RyaW5nJik7CisgICAgc3RhdGljIFJlZlB0cjxJbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGU+IGdl
dE9yQ3JlYXRlKFdlYkNvcmU6OkZpbGUqKTsKKworICAgIHZpcnR1YWwgfkluamVjdGVkQnVuZGxl
RmlsZUhhbmRsZSgpOworCisgICAgY29uc3QgV2ViQ29yZTo6RmlsZSogY29yZUZpbGUoKSBjb25z
dDsKKworcHJpdmF0ZToKKyAgICBJbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGUoV2ViQ29yZTo6Rmls
ZSYpOworCisgICAgUmVmPFdlYkNvcmU6OkZpbGU+IG1fZmlsZTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gSW5qZWN0ZWRCdW5kbGVGaWxlSGFuZGxlX2gKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAkocmV2
aXNpb24gMTgwNzcyKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZy
YW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQVBJ
QXJyYXkuaCIKICNpbmNsdWRlICJEb3dubG9hZE1hbmFnZXIuaCIKKyNpbmNsdWRlICJJbmplY3Rl
ZEJ1bmRsZUZpbGVIYW5kbGUuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1
bHQuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuaCIKICNpbmNsdWRlICJJ
bmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmgiCkBAIC02MCw2ICs2MSw3IEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9JbWFnZUJ1ZmZlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSlNDU1NTdHlsZURlY2xh
cmF0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9KU0VsZW1lbnQuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL0pTRmlsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSlNSYW5nZS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvTWFpbkZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JraW5nQ29udGV4dC5o
PgpAQCAtNjg1LDYgKzY4NywxOCBAQCBKU1ZhbHVlUmVmIFdlYkZyYW1lOjpqc1dyYXBwZXJGb3JX
b3JsZChJCiAgICAgcmV0dXJuIHRvUmVmKGV4ZWMsIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBy
YW5nZUhhbmRsZS0+Y29yZVJhbmdlKCkpKTsKIH0KIAorSlNWYWx1ZVJlZiBXZWJGcmFtZTo6anNX
cmFwcGVyRm9yV29ybGQoSW5qZWN0ZWRCdW5kbGVGaWxlSGFuZGxlKiBmaWxlSGFuZGxlLCBJbmpl
Y3RlZEJ1bmRsZVNjcmlwdFdvcmxkKiB3b3JsZCkKK3sKKyAgICBpZiAoIW1fY29yZUZyYW1lKQor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIEpTRE9NV2luZG93KiBnbG9iYWxPYmplY3Qg
PSBtX2NvcmVGcmFtZS0+c2NyaXB0KCkuZ2xvYmFsT2JqZWN0KHdvcmxkLT5jb3JlV29ybGQoKSk7
CisgICAgRXhlY1N0YXRlKiBleGVjID0gZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7CisKKyAg
ICBKU0xvY2tIb2xkZXIgbG9jayhleGVjKTsKKyAgICByZXR1cm4gdG9SZWYoZXhlYywgdG9KUyhl
eGVjLCBnbG9iYWxPYmplY3QsIGZpbGVIYW5kbGUtPmNvcmVGaWxlKCkpKTsKK30KKwogU3RyaW5n
IFdlYkZyYW1lOjpjb3VudGVyVmFsdWUoSlNPYmplY3RSZWYgZWxlbWVudCkKIHsKICAgICBpZiAo
IXRvSlMoZWxlbWVudCktPmluaGVyaXRzKEpTRWxlbWVudDo6aW5mbygpKSkKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oCShyZXZpc2lvbiAxODA3
NzIpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaAkod29y
a2luZyBjb3B5KQpAQCAtNTQsNiArNTQsNyBAQCBjbGFzcyBVUkw7CiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogCitjbGFzcyBJbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGU7CiBjbGFzcyBJbmplY3RlZEJ1
bmRsZUhpdFRlc3RSZXN1bHQ7CiBjbGFzcyBJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGU7CiBjbGFz
cyBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlOwpAQCAtMTE3LDYgKzExOCw3IEBAIHB1YmxpYzoK
IAogICAgIEpTVmFsdWVSZWYganNXcmFwcGVyRm9yV29ybGQoSW5qZWN0ZWRCdW5kbGVOb2RlSGFu
ZGxlKiwgSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZCopOwogICAgIEpTVmFsdWVSZWYganNXcmFw
cGVyRm9yV29ybGQoSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZSosIEluamVjdGVkQnVuZGxlU2Ny
aXB0V29ybGQqKTsKKyAgICBKU1ZhbHVlUmVmIGpzV3JhcHBlckZvcldvcmxkKEluamVjdGVkQnVu
ZGxlRmlsZUhhbmRsZSosIEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQqKTsKIAogICAgIHN0YXRp
YyBTdHJpbmcgY291bnRlclZhbHVlKEpTT2JqZWN0UmVmIGVsZW1lbnQpOwogCkluZGV4OiBUb29s
cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxODA3
ODMpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMSBAQAor
MjAxNS0wMi0yNyAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBX
ZWJLaXQyIFNQSSB0byBjcmVhdGUgYSBET00gRmlsZSBvYmplY3QKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjEwOQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIHRlc3QgZm9yIFdLQnVuZGxlRmls
ZUhhbmRsZVJlZi4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Mi9XS0J1bmRsZUZpbGVIYW5kbGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OmRpZEZpbmlzaExvYWRGb3JGcmFtZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV0tCdW5kbGVG
aWxlSGFuZGxlX0J1bmRsZS5jcHA6IEFkZGVkLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6V0tC
dW5kbGVGaWxlSGFuZGxlVGVzdDo6V0tCdW5kbGVGaWxlSGFuZGxlVGVzdCk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL2J1bmRsZS1maWxlLmh0bWw6IEFkZGVkLgorCiAy
MDE1LTAyLTI3ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgW1dpbkNhaXJvXSBVbnJldmlld2VkIGJ1aWxkIGZpeC4KSW5kZXg6IFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCShyZXZpc2lvbiAxODA2ODEpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAt
NTYsNiArNTYsOSBAQAogCQk3NjczNDk5RDE5MzBDNUJCMDBFNDRERjkgLyogU3RvcExvYWRpbmdE
dXJpbmdEaWRGYWlsUHJvdmlzaW9uYWxMb2FkX2J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NjczNDk5QTE5MzAxODJFMDBFNDRERjkgLyog
U3RvcExvYWRpbmdEdXJpbmdEaWRGYWlsUHJvdmlzaW9uYWxMb2FkX2J1bmRsZS5jcHAgKi87IH07
CiAJCTc2RTE4MkREMTU0NzU2OTEwMEYxRkFERCAvKiBXaWxsU2VuZFN1Ym1pdEV2ZW50X0J1bmRs
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NkUx
ODJEQzE1NDc1NjkxMDBGMUZBREQgLyogV2lsbFNlbmRTdWJtaXRFdmVudF9CdW5kbGUuY3BwICov
OyB9OwogCQk3NkUxODJERjE1NDc2N0U2MDBGMUZBREQgLyogYXV0by1zdWJtaXR0aW5nLWZvcm0u
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3NkUxODJERTE1NDc1QTgzMDBGMUZBREQgLyogYXV0by1zdWJtaXR0aW5nLWZvcm0uaHRtbCAq
LzsgfTsKKwkJN0M0ODZCQTExQUExMjU2NzAwM0Y2RjlCIC8qIGJ1bmRsZS1maWxlLmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M0ODZC
QTAxQUExMjU0QjAwM0Y2RjlCIC8qIGJ1bmRsZS1maWxlLmh0bWwgKi87IH07CisJCTdDNTRBNEJF
MUFBMTFDQ0EwMDM4MEY3OCAvKiBXS0J1bmRsZUZpbGVIYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M1NEE0QkMxQUExMUNDQTAwMzgwRjc4
IC8qIFdLQnVuZGxlRmlsZUhhbmRsZS5jcHAgKi87IH07CisJCTdDNTRBNEMxMUFBMTFDRTQwMDM4
MEY3OCAvKiBXS0J1bmRsZUZpbGVIYW5kbGVfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNTRBNEJGMUFBMTFDRTQwMDM4MEY3OCAvKiBX
S0J1bmRsZUZpbGVIYW5kbGVfQnVuZGxlLmNwcCAqLzsgfTsKIAkJN0M4OUQyQUMxQTY5QjgwRDAw
M0E1RkRFIC8qIFdLUGFnZUNvbmZpZ3VyYXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M4OUQyQUExQTY5QjgwRDAwM0E1RkRFIC8qIFdLUGFn
ZUNvbmZpZ3VyYXRpb24uY3BwICovOyB9OwogCQk3QzlFRDk4QjE3QTE5RjRCMDBFNERDMzMgLyog
YXR0cmlidXRlZFN0cmluZ1N0cmlrZXRocm91Z2guaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzlFRDk4QTE3QTE5RDA2MDBFNERDMzMg
LyogYXR0cmlidXRlZFN0cmluZ1N0cmlrZXRocm91Z2guaHRtbCAqLzsgfTsKIAkJN0NDRTdFQTQx
QTQxMTlGMzAwNDQ3QzRDIC8qIEluc3RhbmNlTWV0aG9kU3dpenpsZXIubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMDg1ODdGRjEzRkVDM0E2MDAxRUY0
RTUgLyogSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbSAqLzsgfTsKQEAgLTMxNCw2ICszMTcsNyBA
QAogCQkJZHN0UGF0aCA9IFRlc3RXZWJLaXRBUEkucmVzb3VyY2VzOwogCQkJZHN0U3ViZm9sZGVy
U3BlYyA9IDc7CiAJCQlmaWxlcyA9ICgKKwkJCQk3QzQ4NkJBMTFBQTEyNTY3MDAzRjZGOUIgLyog
YnVuZGxlLWZpbGUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQkxQTlFNTJDOTEzRTY1
RUY0MDA2OTE3RjUgLyogMTgtY2hhcmFjdGVycy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAog
CQkJCTM3OTAyOEI5MTRGQUMyNEMwMDdFNkI0MyAvKiBhY2NlcHRzRmlyc3RNb3VzZS5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovLAogCQkJCTJEOTUwRkMwMUEyMzBDM0EwMDAxMjQzNCAvKiBhY3Rp
b24tbWVudS10YXJnZXRzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC01MDcsNiArNTEx
LDkgQEAKIAkJNzZFMTgyRDkxNTQ3NTUwMTAwRjFGQUREIC8qIFdpbGxTZW5kU3VibWl0RXZlbnQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2lsbFNlbmRTdWJtaXRF
dmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc2RTE4MkRDMTU0NzU2OTEw
MEYxRkFERCAvKiBXaWxsU2VuZFN1Ym1pdEV2ZW50X0J1bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXaWxsU2VuZFN1Ym1pdEV2ZW50X0J1bmRsZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc2RTE4MkRFMTU0NzVBODMwMEYxRkFERCAvKiBh
dXRvLXN1Ym1pdHRpbmctZm9ybS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImF1
dG8tc3VibWl0dGluZy1mb3JtLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3
QzQ4NkJBMDFBQTEyNTRCMDAzRjZGOUIgLyogYnVuZGxlLWZpbGUuaHRtbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJi
dW5kbGUtZmlsZS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0M1NEE0QkMx
QUExMUNDQTAwMzgwRjc4IC8qIFdLQnVuZGxlRmlsZUhhbmRsZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS0J1bmRsZUZpbGVIYW5kbGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk3QzU0QTRCRjFBQTExQ0U0MDAzODBGNzggLyogV0tCdW5kbGVG
aWxlSGFuZGxlX0J1bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXS0J1bmRsZUZpbGVIYW5kbGVfQnVuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJN0M2QkJEOEExOUNFQTU0MzAwQzFGNUUwIC8qIENvdW50ZXJzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvdW50ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTdDNkJCRDhCMTlDRUE2MzAwMEMxRjVFMCAvKiBDb3VudGVycy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb3VudGVycy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTdDNzRENDJEMTg4MjI4RjMwMEU1RUQ1NyAvKiBTdHJpbmdWaWV3LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0cmluZ1ZpZXcuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTgxLDYgKzk4OCw4IEBACiAJCQkJN0NGQkNB
RTMxNzQzMjM4RTAwQjJCRkNGIC8qIFdpbGxMb2FkX0J1bmRsZS5jcHAgKi8sCiAJCQkJNzZFMTgy
RDkxNTQ3NTUwMTAwRjFGQUREIC8qIFdpbGxTZW5kU3VibWl0RXZlbnQuY3BwICovLAogCQkJCTc2
RTE4MkRDMTU0NzU2OTEwMEYxRkFERCAvKiBXaWxsU2VuZFN1Ym1pdEV2ZW50X0J1bmRsZS5jcHAg
Ki8sCisJCQkJN0M1NEE0QkMxQUExMUNDQTAwMzgwRjc4IC8qIFdLQnVuZGxlRmlsZUhhbmRsZS5j
cHAgKi8sCisJCQkJN0M1NEE0QkYxQUExMUNFNDAwMzgwRjc4IC8qIFdLQnVuZGxlRmlsZUhhbmRs
ZV9CdW5kbGUuY3BwICovLAogCQkJCUExRkRGRDJFMTlDMjg4QkIwMDUxNDhBNCAvKiBXS0ltYWdl
Q3JlYXRlQ0dJbWFnZUNyYXNoLmNwcCAqLywKIAkJCQk3Qzg5RDJBQTFBNjlCODBEMDAzQTVGREUg
LyogV0tQYWdlQ29uZmlndXJhdGlvbi5jcHAgKi8sCiAJCQkJNTFFOTMwMTYxNTZCMTNFMTAwNEM5
OURGIC8qIFdLUGFnZUdldFNjYWxlRmFjdG9yTm90WmVyby5jcHAgKi8sCkBAIC0xMDQxLDYgKzEw
NTAsNyBAQAogCQkJCTkzRDNEMTlCMTdCMUE3QjAwMEM3QzQxNSAvKiBhbGwtY29udGVudC1pbi1v
bmUtaWZyYW1lLmh0bWwgKi8sCiAJCQkJRjZCN0JFOTYxNzQ2OUI3RTAwOEEzNDQ1IC8qIGFzc29j
aWF0ZS1mb3JtLWNvbnRyb2xzLmh0bWwgKi8sCiAJCQkJNzZFMTgyREUxNTQ3NUE4MzAwRjFGQURE
IC8qIGF1dG8tc3VibWl0dGluZy1mb3JtLmh0bWwgKi8sCisJCQkJN0M0ODZCQTAxQUExMjU0QjAw
M0Y2RjlCIC8qIGJ1bmRsZS1maWxlLmh0bWwgKi8sCiAJCQkJMUE1MEFBMUYxQTJBNEVBNTAwRjRD
MzQ1IC8qIGNsb3NlLWZyb20td2l0aGluLWNyZWF0ZS1wYWdlLmh0bWwgKi8sCiAJCQkJMjkwRjQy
NzQxNzJBMUZERTAwOTM5RkYwIC8qIGN1c3RvbS1wcm90b2NvbC1zeW5jLXhoci5odG1sICovLAog
CQkJCUM1RTFBRkZEMTZCMjIxNzkwMDZDQzFGMiAvKiBleGVjQ29weS5odG1sICovLApAQCAtMTQw
NSw2ICsxNDE1LDcgQEAKIAkJCQk3Q0NFN0VDMzFBNDExQTdFMDA0NDdDNEMgLyogSW5zcGVjdG9y
QmFyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFQTQxQTQxMTlGMzAwNDQ3QzRDIC8qIElu
c3RhbmNlTWV0aG9kU3dpenpsZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VEQTFBNDEx
QTg3MDA0NDdDNEMgLyogSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbSBpbiBTb3VyY2VzICovLAor
CQkJCTdDNTRBNEJFMUFBMTFDQ0EwMDM4MEY3OCAvKiBXS0J1bmRsZUZpbGVIYW5kbGUuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMzcxQTQxMUI4RTAwNDQ3QzRDIC8qIEludGVnZXJUb1N0
cmluZ0NvbnZlcnNpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFQUQxQTQxMUEzNDAw
NDQ3QzRDIC8qIEphdmFTY3JpcHRUZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUE1
MUE0MTFBMDgwMDQ0N0M0QyAvKiBKYXZhU2NyaXB0VGVzdE1hYy5tbSBpbiBTb3VyY2VzICovLApA
QCAtMTU0NSw2ICsxNTU2LDcgQEAKIAkJCQlGNjYwQUExMTE1QTVGNjMxMDAzQTEyNDMgLyogR2V0
SW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhQ2FsbGJhY2tfQnVuZGxlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTRCRkRGRkE3MTMxNDc3NkMwMDYxRjI0QiAvKiBIaXRUZXN0UmVz
dWx0Tm9kZUhhbmRsZV9CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM1NzVBQjAxMjZF
ODNDODAwNkYwRjEyIC8qIEluamVjdGVkQnVuZGxlQmFzaWNfQnVuZGxlLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTdDNTRBNEMxMUFBMTFDRTQwMDM4MEY3OCAvKiBXS0J1bmRsZUZpbGVIYW5kbGVf
QnVuZGxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNTc1QUEyMTI2RTc2NjAwMDZGMEYxMiAv
KiBJbmplY3RlZEJ1bmRsZUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFFREUy
MjYxM0U1RTdFNzAwRTYyRkU4IC8qIEluamVjdGVkQnVuZGxlQ29udHJvbGxlck1hYy5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTM3OEU2NDc3MTYzMjY1NUUwMEI2QzY3NiAvKiBJbmplY3RlZEJ1bmRs
ZUZyYW1lSGl0VGVzdF9CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV0tCdW5kbGVGaWxlSGFuZGxlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV0tCdW5kbGVGaWxlSGFuZGxl
LmNwcAkocmV2aXNpb24gMCkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9X
S0J1bmRsZUZpbGVIYW5kbGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsODYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBXS19IQVZFX0NfU1BJCisKKyNp
bmNsdWRlICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5o
IgorI2luY2x1ZGUgIlRlc3QuaCIKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitzdGF0
aWMgYm9vbCBkb25lOworc3RhdGljIGJvb2wgbG9hZERvbmU7CisKK3N0YXRpYyB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLQ29udGV4dFJlZiwgV0tTdHJpbmdSZWYg
bWVzc2FnZU5hbWUsIFdLVHlwZVJlZiBib2R5LCBjb25zdCB2b2lkKikKK3sKKyAgICBpZiAoIVdL
U3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJTVUNDRVNTIikpCisgICAg
ICAgIEZBSUwoKTsKKyAgICBlbHNlCisgICAgICAgIFNVQ0NFRUQoKTsKKworICAgIGRvbmUgPSB0
cnVlOworfQorCitzdGF0aWMgdm9pZCBkaWRGaW5pc2hMb2FkRm9yRnJhbWUoV0tQYWdlUmVmIHBh
Z2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCopCit7
CisgICAgbG9hZERvbmUgPSB0cnVlOworfQorCitURVNUKFdlYktpdDIsIFdLQnVuZGxlRmlsZUhh
bmRsZSkKK3sKKyAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdL
KFV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIldLQnVuZGxlRmlsZUhh
bmRsZVRlc3QiKSk7CisKKyAgICBXS0NvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudFYwIGluamVj
dGVkQnVuZGxlQ2xpZW50OworICAgIG1lbXNldCgmaW5qZWN0ZWRCdW5kbGVDbGllbnQsIDAsIHNp
emVvZihpbmplY3RlZEJ1bmRsZUNsaWVudCkpOworICAgIGluamVjdGVkQnVuZGxlQ2xpZW50LmJh
c2UudmVyc2lvbiA9IDA7CisgICAgaW5qZWN0ZWRCdW5kbGVDbGllbnQuZGlkUmVjZWl2ZU1lc3Nh
Z2VGcm9tSW5qZWN0ZWRCdW5kbGUgPSBkaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRs
ZTsKKyAgICBXS0NvbnRleHRTZXRJbmplY3RlZEJ1bmRsZUNsaWVudChjb250ZXh0LmdldCgpLCAm
aW5qZWN0ZWRCdW5kbGVDbGllbnQuYmFzZSk7CisKKyAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmll
dyhjb250ZXh0LmdldCgpKTsKKworICAgIFdLUGFnZUxvYWRlckNsaWVudFYwIGxvYWRlckNsaWVu
dDsKKyAgICBtZW1zZXQoJmxvYWRlckNsaWVudCwgMCwgc2l6ZW9mKGxvYWRlckNsaWVudCkpOwor
ICAgIGxvYWRlckNsaWVudC5iYXNlLnZlcnNpb24gPSAwOworICAgIGxvYWRlckNsaWVudC5kaWRG
aW5pc2hMb2FkRm9yRnJhbWUgPSBkaWRGaW5pc2hMb2FkRm9yRnJhbWU7CisgICAgV0tQYWdlU2V0
UGFnZUxvYWRlckNsaWVudCh3ZWJWaWV3LnBhZ2UoKSwgJmxvYWRlckNsaWVudC5iYXNlKTsKKwor
ICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJM
Rm9yUmVzb3VyY2UoImJ1bmRsZS1maWxlIiwgImh0bWwiKSkuZ2V0KCkpOworICAgIFV0aWw6OnJ1
bigmbG9hZERvbmUpOworICAgIAorICAgIC8vIEdldCBwYXRoIHRvIGEgZmlsZS4KKyAgICBhdXRv
IHVybFRvRmlsZSA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoInNpbXBsZSIs
ICJodG1sIikpOworICAgIGF1dG8gcGF0aFRvRmlsZSA9IGFkb3B0V0soV0tVUkxDb3B5UGF0aCh1
cmxUb0ZpbGUuZ2V0KCkpKTsKKworICAgIFdLQ29udGV4dFBvc3RNZXNzYWdlVG9JbmplY3RlZEJ1
bmRsZShjb250ZXh0LmdldCgpLCBVdGlsOjp0b1dLKCJUZXN0RmlsZSIpLmdldCgpLCBwYXRoVG9G
aWxlLmdldCgpKTsKKworICAgIFV0aWw6OnJ1bigmZG9uZSk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFRlc3RXZWJLaXRBUEkKKworI2VuZGlmCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDIvV0tCdW5kbGVGaWxlSGFuZGxlX0J1bmRsZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dLQnVuZGxlRmlsZUhhbmRsZV9CdW5kbGUu
Y3BwCShyZXZpc2lvbiAwKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dL
QnVuZGxlRmlsZUhhbmRsZV9CdW5kbGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOTkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBXS19IQVZFX0NfU1BJ
CisKKyNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVRlc3QuaCIKKworI2luY2x1ZGUgIlBsYXRmb3Jt
VXRpbGl0aWVzLmgiCisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFnZS5oPgorI2luY2x1ZGUg
PFdlYktpdC9XS0J1bmRsZUZpbGVIYW5kbGVSZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5k
bGVGcmFtZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVNjcmlwdFdvcmxkLmg+CisKK25h
bWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworc3RhdGljIFdLQnVuZGxlUGFnZVJlZiBsb2FkZWRQ
YWdlOworCitjbGFzcyBXS0J1bmRsZUZpbGVIYW5kbGVUZXN0IDogcHVibGljIEluamVjdGVkQnVu
ZGxlVGVzdCB7CitwdWJsaWM6CisgICAgV0tCdW5kbGVGaWxlSGFuZGxlVGVzdChjb25zdCBzdGQ6
OnN0cmluZyYgaWRlbnRpZmllcikKKyAgICAgICAgOiBJbmplY3RlZEJ1bmRsZVRlc3QoaWRlbnRp
ZmllcikKKyAgICB7CisgICAgfQorCitwcml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZShXS0J1bmRsZVJlZiBidW5kbGUsIFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1lLCBX
S1R5cGVSZWYgbWVzc2FnZUJvZHkpIG92ZXJyaWRlCisgICAgeworICAgICAgICBpZiAoIVdLU3Ry
aW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJUZXN0RmlsZSIpKSB7CisgICAg
ICAgICAgICBXS0J1bmRsZVBvc3RNZXNzYWdlKGJ1bmRsZSwgVXRpbDo6dG9XSygiRkFJTCIpLmdl
dCgpLCBVdGlsOjp0b1dLKCJSZWNpZXZlZCBpbnZhbGlkIG1lc3NhZ2UiKS5nZXQoKSk7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWxvYWRlZFBhZ2UpIHsK
KyAgICAgICAgICAgIFdLQnVuZGxlUG9zdE1lc3NhZ2UoYnVuZGxlLCBVdGlsOjp0b1dLKCJGQUlM
IikuZ2V0KCksIFV0aWw6OnRvV0soIk5vIGxvYWRlZCBwYWdlIikuZ2V0KCkpOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKFdLR2V0VHlwZUlEKG1lc3NhZ2VC
b2R5KSAhPSBXS1N0cmluZ0dldFR5cGVJRCgpKSB7CisgICAgICAgICAgICBXS0J1bmRsZVBvc3RN
ZXNzYWdlKGJ1bmRsZSwgVXRpbDo6dG9XSygiRkFJTCIpLmdldCgpLCBVdGlsOjp0b1dLKCJNZXNz
YWdlIGJvZHkgaGFzIGludmFsaWQgdHlwZSIpLmdldCgpKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorCisgICAgICAgIFdLQnVuZGxlRnJhbWVSZWYgbWFpbkZyYW1lID0gV0tCdW5k
bGVQYWdlR2V0TWFpbkZyYW1lKGxvYWRlZFBhZ2UpOworICAgICAgICBXS0J1bmRsZVNjcmlwdFdv
cmxkUmVmIHdvcmxkID0gV0tCdW5kbGVTY3JpcHRXb3JsZE5vcm1hbFdvcmxkKCk7CisgICAgICAg
IAorICAgICAgICBKU0dsb2JhbENvbnRleHRSZWYgZ2xvYmFsQ29udGV4dCA9IFdLQnVuZGxlRnJh
bWVHZXRKYXZhU2NyaXB0Q29udGV4dEZvcldvcmxkKG1haW5GcmFtZSwgd29ybGQpOworCisgICAg
ICAgIGF1dG8gZmlsZUhhbmRsZSA9IGFkb3B0V0soV0tCdW5kbGVGaWxlSGFuZGxlQ3JlYXRlV2l0
aFBhdGgoKFdLU3RyaW5nUmVmKW1lc3NhZ2VCb2R5KSk7CisgICAgICAgIEpTVmFsdWVSZWYganNG
aWxlSGFuZGxlID0gV0tCdW5kbGVGcmFtZUdldEphdmFTY3JpcHRXcmFwcGVyRm9yRmlsZUZvcldv
cmxkKG1haW5GcmFtZSwgZmlsZUhhbmRsZS5nZXQoKSwgd29ybGQpOworCisgICAgICAgIEpTT2Jq
ZWN0UmVmIGdsb2JhbE9iamVjdCA9IEpTQ29udGV4dEdldEdsb2JhbE9iamVjdChnbG9iYWxDb250
ZXh0KTsKKworICAgICAgICBKU1N0cmluZ1JlZiBqc1N0cmluZyA9IEpTU3RyaW5nQ3JlYXRlV2l0
aFVURjhDU3RyaW5nKCJ0ZXN0RmlsZSIpOworICAgICAgICBKU1ZhbHVlUmVmIGZ1bmN0aW9uID0g
SlNPYmplY3RHZXRQcm9wZXJ0eShnbG9iYWxDb250ZXh0LCBnbG9iYWxPYmplY3QsIGpzU3RyaW5n
LCBudWxscHRyKTsKKyAgICAgICAgSlNTdHJpbmdSZWxlYXNlKGpzU3RyaW5nKTsKKyAgICAgICAg
CisgICAgICAgIEpTVmFsdWVSZWYgcmVzdWx0ID0gSlNPYmplY3RDYWxsQXNGdW5jdGlvbihnbG9i
YWxDb250ZXh0LCAoSlNPYmplY3RSZWYpZnVuY3Rpb24sIGdsb2JhbE9iamVjdCwgMSwgJmpzRmls
ZUhhbmRsZSwgbnVsbHB0cik7CisKKyAgICAgICAgaWYgKEpTVmFsdWVUb0Jvb2xlYW4oZ2xvYmFs
Q29udGV4dCwgcmVzdWx0KSkKKyAgICAgICAgICAgIFdLQnVuZGxlUG9zdE1lc3NhZ2UoYnVuZGxl
LCBVdGlsOjp0b1dLKCJTVUNDRVNTIikuZ2V0KCksIG51bGxwdHIpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBXS0J1bmRsZVBvc3RNZXNzYWdlKGJ1bmRsZSwgVXRpbDo6dG9XSygiRkFJTCIp
LmdldCgpLCBVdGlsOjp0b1dLKCJTY3JpcHQgZmFpbGVkIikuZ2V0KCkpOworICAgIH0KKworICAg
IHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVQYWdlKFdLQnVuZGxlUmVmIGJ1bmRsZSwgV0tCdW5kbGVQ
YWdlUmVmIHBhZ2UpIG92ZXJyaWRlCisgICAgeworICAgICAgICBsb2FkZWRQYWdlID0gcGFnZTsK
KyAgICB9Cit9OworCitzdGF0aWMgSW5qZWN0ZWRCdW5kbGVUZXN0OjpSZWdpc3RlcjxXS0J1bmRs
ZUZpbGVIYW5kbGVUZXN0PiByZWdpc3RyYXIoIldLQnVuZGxlRmlsZUhhbmRsZVRlc3QiKTsKKwor
fSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQorCisjZW5kaWYKSW5kZXg6IFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9idW5kbGUtZmlsZS5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9idW5kbGUtZmlsZS5odG1sCShyZXZpc2lv
biAwKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL2J1bmRsZS1maWxlLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNiBAQAorPGh0bWw+Cis8aGVhZD4KKyAgICA8
c2NyaXB0PgorICAgICAgICBmdW5jdGlvbiB0ZXN0RmlsZShmaWxlKQorICAgICAgICB7CisgICAg
ICAgICAgICBpZiAoIShmaWxlIGluc3RhbmNlb2YgRmlsZSkpCisgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9
CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICBGaWxlIHRlc3QuCis8L2JvZHk+
Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247571</attachid>
            <date>2015-02-27 16:08:31 -0800</date>
            <delta_ts>2015-02-27 16:42:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142109-20150227160817.patch</filename>
            <type>text/plain</type>
            <size>50335</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgwNzg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTc4MWM5N2VlYTUzMWYx
ZDc3Njk2ZTYxYTNlZDk0NTdkOGVlMDk4NS4uZmQzY2Q2MDVmMzgzYjVjZjQyNmYxYTllYzg0ZmUy
NzBkN2U4N2JhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE1LTAyLTI3ICBTYW0g
V2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIFdlYktpdDIgU1BJIHRvIGNy
ZWF0ZSBhIERPTSBGaWxlIG9iamVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTQyMTA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgIE1ha2UgPFdlYkNvcmUvRmlsZS5oPiAoYW5kIGFzc29jaWF0ZWQgZmlsZXMpIGF2YWlsYWJs
ZSB0byBXZWJLaXQyLgorCiAyMDE1LTAyLTI3ICBFbnJpY2EgQ2FzdWNjaSAgPGVucmljYUBhcHBs
ZS5jb20+CiAKICAgICAgICAgQWRkaW5nIHN1cHBvcnQgZm9yIHNlcmlhbGl6aW5nIEhUTUxBdHRh
Y2htZW50IGVsZW1lbnRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDQzYTMyZTBlODJiNjE5MmRkYzQxYTk4ODI3
MmE0NTJjZjFkYzQ0NzUuLjU3ZjUxMTk2YjUwNGM0MTEyMTU3OTNlNmZlODAzMDc3YzAxNmRlZjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAxNS0wMi0yNyAgU2FtIFdlaW5pZyAgPHNh
bUB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBXZWJLaXQyIFNQSSB0byBjcmVhdGUgYSBET00g
RmlsZSBvYmplY3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0MjEwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBhIG5ldyBoYW5kbGUgdHlwZSBmb3IgZXhwb3NpbmcgYSBET00gRmlsZSBvYmplY3Qg
dG8gc2NyaXB0LiBGb2xsb3cKKyAgICAgICAgdGhlIHBhdHRlcm4gb2YgV0tCdW5kbGVOb2RlSGFu
ZGxlUmVmIGFuZCBXS0J1bmRsZVJhbmdlSGFuZGxlUmVmIHdpdGggdGhlCisgICAgICAgIG5ldyBj
bGFzcyBXS0J1bmRsZUZpbGVIYW5kbGVSZWYuIEl0IGNhbiBiZSBjcmVhdGVkIGZvciBhIHNwZWNp
ZmljIHBhdGgsCisgICAgICAgIGFuZCB0aGVuIHRoZSBKUyB3cmFwcGVyIGNhbiBiZSBvYnRhaW5l
ZCB2aWEgV0tCdW5kbGVGcmFtZUdldEphdmFTY3JpcHRXcmFwcGVyRm9yRmlsZUZvcldvcmxkLgor
CisgICAgICAgICogU2hhcmVkL0FQSS9BUElPYmplY3QuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJ
L2MvV0tCYXNlLmg6CisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVBUElD
YXN0Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRs
ZUZpbGVIYW5kbGVSZWYuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdLQnVuZGxlRmlsZUhhbmRsZUdl
dFR5cGVJRCk6CisgICAgICAgIChXS0J1bmRsZUZpbGVIYW5kbGVDcmVhdGVXaXRoUGF0aCk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZpbGVIYW5k
bGVSZWYuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZUZyYW1lLmNwcDoKKyAgICAgICAgKFdLQnVuZGxlRnJhbWVHZXRKYXZhU2NyaXB0
V3JhcHBlckZvckZpbGVGb3JXb3JsZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVGaWxlSGFuZGxlLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJLaXQ6OmRvbUhhbmRsZUNhY2hlKToKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5k
bGVGaWxlSGFuZGxlOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZUZp
bGVIYW5kbGU6OmdldE9yQ3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVG
aWxlSGFuZGxlOjpJbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpJ
bmplY3RlZEJ1bmRsZUZpbGVIYW5kbGU6On5JbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGUpOgorICAg
ICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGU6OmNvcmVGaWxlKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZUZpbGVIYW5k
bGUuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWU6OmpzV3JhcHBlckZvcldvcmxkKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaDoKKwogMjAxNS0wMi0yNyAgQmV0aCBEYWtp
biAgPGJkYWtpbkBhcHBsZS5jb20+CiAKICAgICAgICAgTG9va3VwIHBhbmVsIGRpc21pc3NlcyB3
aGVuIHBhZ2VzIGFyZSBsb2FkaW5nIGluIG90aGVyIHRhYnMvd2luZG93cwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDkzMTU2MTc2
ZGQwMDMxMGQ0ZTk5NTUzZmZmOTNkNDJkZDM4MGRjZjEuLmMwZWQxNmJhMWY3MzUwMmUwZTI0OTNh
YmE0MTdhODExZTE5ZDdiM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTExNTYsNyArMTE1Niw3IEBACiAJCTJFMDg4OEQ1MTE0
ODg0OEEwMEFGNDI2NSAvKiBKU0RPTUZvcm1EYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTA4ODhEMzExNDg4NDhBMDBBRjQyNjUgLyogSlNET01G
b3JtRGF0YS5oICovOyB9OwogCQkyRTA4ODhFNjExNDg4NEUyMDBBRjQyNjUgLyogSlNET01Gb3Jt
RGF0YUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyRTA4ODhFNTExNDg4NEUyMDBBRjQyNjUgLyogSlNET01Gb3JtRGF0YUN1c3RvbS5jcHAg
Ki87IH07CiAJCTJFMkQ5OUNEMTBFMkJCREEwMDQ5NjMzNyAvKiBKU0Jsb2IuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkUyRDk5Q0IxMEUyQkJEQTAw
NDk2MzM3IC8qIEpTQmxvYi5jcHAgKi87IH07Ci0JCTJFMkQ5OUNFMTBFMkJCREEwMDQ5NjMzNyAv
KiBKU0Jsb2IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDJFMkQ5OUNDMTBFMkJCREEwMDQ5NjMzNyAvKiBKU0Jsb2IuaCAqLzsgfTsKKwkJMkUyRDk5Q0Ux
MEUyQkJEQTAwNDk2MzM3IC8qIEpTQmxvYi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkUyRDk5Q0MxMEUyQkJEQTAwNDk2MzM3IC8qIEpTQmxvYi5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTJFMkQ5OUU3
MTBFMkJDMUMwMDQ5NjMzNyAvKiBET01CbG9iLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyRTJEOTlFNTEwRTJCQzFDMDA0OTYzMzcgLyogRE9NQmxvYi5o
ICovOyB9OwogCQkyRTJEOTlFODEwRTJCQzFDMDA0OTYzMzcgLyogRE9NQmxvYi5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFMkQ5OUU2MTBFMkJDMUMw
MDQ5NjMzNyAvKiBET01CbG9iLm1tICovOyB9OwogCQkyRTJEOTlFQTEwRTJCQzM4MDA0OTYzMzcg
LyogRE9NQmxvYkludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyRTJEOTlFOTEwRTJCQzM4MDA0OTYzMzcgLyogRE9NQmxvYkludGVybmFsLmgg
Ki87IH07CkBAIC0yNTAxLDYgKzI1MDEsNyBAQAogCQk3Qzc0RDQzQzE4ODI0MDA0MDBFNUVENTcg
LyogVVRleHRQcm92aWRlclVURjE2LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3Qzc0RDQzQTE4ODI0MDA0MDBFNUVENTcgLyogVVRleHRQcm92aWRlclVU
RjE2LmggKi87IH07CiAJCTdDOURCRkVEMUE5QzQ5QjEwMDBENkIyNSAvKiBKU0hUTUxBdHRhY2ht
ZW50RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3QzlEQkZFQjFBOUM0OUIxMDAwRDZCMjUgLyogSlNIVE1MQXR0YWNobWVudEVsZW1lbnQu
Y3BwICovOyB9OwogCQk3QzlEQkZFRTFBOUM0OUIxMDAwRDZCMjUgLyogSlNIVE1MQXR0YWNobWVu
dEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdDOURCRkVDMUE5QzQ5QjEwMDBENkIyNSAvKiBKU0hUTUxBdHRhY2htZW50RWxlbWVudC5oICov
OyB9OworCQk3Q0MyODlERjFBQTBGRTVEMDA5QTlDRTMgLyogVVJMUmVnaXN0cnkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERUUzOTM4MTc5NzQyNzQw
MDFENzU4MCAvKiBVUkxSZWdpc3RyeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTdDQzU2NEI4MThCQUJFQTYwMDFCOTY1MiAvKiBUZWxlcGhvbmVO
dW1iZXJEZXRlY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gN0NDNTY0QjYxOEJBQkVBNjAwMUI5NjUyIC8qIFRlbGVwaG9uZU51bWJlckRldGVjdG9y
LmggKi87IH07CiAJCTdDQzU2NEJBMThCQUM3MjAwMDFCOTY1MiAvKiBUZWxlcGhvbmVOdW1iZXJE
ZXRlY3RvckNvY29hLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdDQzU2NEI5MThCQUM3MjAwMDFCOTY1MiAvKiBUZWxlcGhvbmVOdW1iZXJEZXRlY3Rv
ckNvY29hLmNwcCAqLzsgfTsKIAkJN0NDNjk5NDAxOTFFQzVGNTAwQUYyMjcwIC8qIEpTV2ViS2l0
TmFtZXNwYWNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDdDQzY5OTNFMTkxRUM1RjUwMEFGMjI3MCAvKiBKU1dlYktpdE5hbWVzcGFjZS5jcHAgKi87
IH07CkBAIC0zNTI5LDEzICszNTMwLDEzIEBACiAJCTk3NjdDRTBCMTQ1QUJDMTMwMDVFNjREQiAv
KiBFeGNlcHRpb25IZWFkZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5NzY3Q0UwOTE0NUFCQzEyMDA1RTY0REIgLyogRXhjZXB0aW9uSGVhZGVycy5o
ICovOyB9OwogCQk5NzY3Q0UwQzE0NUFCQzEzMDA1RTY0REIgLyogRXhjZXB0aW9uSW50ZXJmYWNl
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc2N0NF
MEExNDVBQkMxMzAwNUU2NERCIC8qIEV4Y2VwdGlvbkludGVyZmFjZXMuaCAqLzsgfTsKIAkJOTc2
RDZDNzgxMjJCOEEzRDAwMUZEMUY3IC8qIEJsb2IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc2RDZDNTkxMjJCOEEzRDAwMUZEMUY3IC8qIEJsb2Iu
Y3BwICovOyB9OwotCQk5NzZENkM3OTEyMkI4QTNEMDAxRkQxRjcgLyogQmxvYi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc2RDZDNUExMjJCOEEzRDAw
MUZEMUY3IC8qIEJsb2IuaCAqLzsgfTsKKwkJOTc2RDZDNzkxMjJCOEEzRDAwMUZEMUY3IC8qIEJs
b2IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NkQ2
QzVBMTIyQjhBM0QwMDFGRDFGNyAvKiBCbG9iLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTc2RDZDN0IxMjJCOEEzRDAwMUZEMUY3IC8qIFdlYktp
dEJsb2JCdWlsZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDk3NkQ2QzVDMTIyQjhBM0QwMDFGRDFGNyAvKiBXZWJLaXRCbG9iQnVpbGRlci5jcHAg
Ki87IH07CiAJCTk3NkQ2QzdDMTIyQjhBM0QwMDFGRDFGNyAvKiBXZWJLaXRCbG9iQnVpbGRlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc2RDZDNUQx
MjJCOEEzRDAwMUZEMUY3IC8qIFdlYktpdEJsb2JCdWlsZGVyLmggKi87IH07CiAJCTk3NkQ2QzdF
MTIyQjhBM0QwMDFGRDFGNyAvKiBCbG9iVVJMLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NkQ2QzVGMTIyQjhBM0QwMDFGRDFGNyAvKiBCbG9iVVJM
LmNwcCAqLzsgfTsKIAkJOTc2RDZDN0YxMjJCOEEzRDAwMUZEMUY3IC8qIEJsb2JVUkwuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NkQ2QzYwMTIyQjhB
M0QwMDFGRDFGNyAvKiBCbG9iVVJMLmggKi87IH07CiAJCTk3NkQ2QzgwMTIyQjhBM0QwMDFGRDFG
NyAvKiBGaWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk3NkQ2QzYxMTIyQjhBM0QwMDFGRDFGNyAvKiBGaWxlLmNwcCAqLzsgfTsKLQkJOTc2RDZD
ODExMjJCOEEzRDAwMUZEMUY3IC8qIEZpbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk3NkQ2QzYyMTIyQjhBM0QwMDFGRDFGNyAvKiBGaWxlLmggKi87
IH07CisJCTk3NkQ2QzgxMTIyQjhBM0QwMDFGRDFGNyAvKiBGaWxlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzZENkM2MjEyMkI4QTNEMDAxRkQxRjcg
LyogRmlsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTk3NkQ2QzgzMTIyQjhBM0QwMDFGRDFGNyAvKiBGaWxlRXJyb3IuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NkQ2QzY0MTIyQjhBM0QwMDFGRDFG
NyAvKiBGaWxlRXJyb3IuaCAqLzsgfTsKIAkJOTc2RDZDODUxMjJCOEEzRDAwMUZEMUY3IC8qIEZp
bGVMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDk3NkQ2QzY2MTIyQjhBM0QwMDFGRDFGNyAvKiBGaWxlTGlzdC5jcHAgKi87IH07CiAJCTk3NkQ2
Qzg2MTIyQjhBM0QwMDFGRDFGNyAvKiBGaWxlTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc2RDZDNjcxMjJCOEEzRDAwMUZEMUY3IC8qIEZpbGVM
aXN0LmggKi87IH07CkBAIC01MDM3LDcgKzUwMzgsNyBAQAogCQlCQzAwRjAwODBFMEExODU1MDBG
RDA0RTMgLyogRE9NRmlsZUxpc3QubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQzAwRjAwMjBFMEExODU1MDBGRDA0RTMgLyogRE9NRmlsZUxpc3QubW0g
Ki87IH07CiAJCUJDMDBGMDA5MEUwQTE4NTUwMEZEMDRFMyAvKiBET01GaWxlTGlzdEludGVybmFs
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzAwRjAw
MzBFMEExODU1MDBGRDA0RTMgLyogRE9NRmlsZUxpc3RJbnRlcm5hbC5oICovOyB9OwogCQlCQzAw
RjAxNDBFMEExODk1MDBGRDA0RTMgLyogSlNGaWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDBGMDEwMEUwQTE4OTUwMEZEMDRFMyAvKiBKU0Zp
bGUuY3BwICovOyB9OwotCQlCQzAwRjAxNTBFMEExODk1MDBGRDA0RTMgLyogSlNGaWxlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzAwRjAxMTBFMEEx
ODk1MDBGRDA0RTMgLyogSlNGaWxlLmggKi87IH07CisJCUJDMDBGMDE1MEUwQTE4OTUwMEZEMDRF
MyAvKiBKU0ZpbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDMDBGMDExMEUwQTE4OTUwMEZEMDRFMyAvKiBKU0ZpbGUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzAwRjAxNjBFMEExODk1MDBGRDA0
RTMgLyogSlNGaWxlTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzAwRjAxMjBFMEExODk1MDBGRDA0RTMgLyogSlNGaWxlTGlzdC5jcHAgKi87
IH07CiAJCUJDMDBGMDE3MEUwQTE4OTUwMEZEMDRFMyAvKiBKU0ZpbGVMaXN0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzAwRjAxMzBFMEExODk1MDBG
RDA0RTMgLyogSlNGaWxlTGlzdC5oICovOyB9OwogCQlCQzAwRjAzNjBFMEExOURCMDBGRDA0RTMg
LyogRE9NRmlsZS5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkMwMEVGRkUwRTBBMTg1NTAwRkQwNEUzIC8qIERPTUZpbGUuaCAq
LzsgfTsKQEAgLTI0MDc0LDYgKzI0MDc1LDcgQEAKIAkJCQkyRUQ2MDlCRDExNDVCMDcxMDBDODY4
NEUgLyogRE9NRm9ybURhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTREQ0UwMTg4MEY5MDEw
MDNFRURCQiAvKiBET01HZXN0dXJlRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTREQ0Uy
MTg4MEY5MDEwMDNFRURCQiAvKiBET01HZXN0dXJlRXZlbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJN0NDMjg5REYxQUEwRkU1RDAwOUE5Q0UzIC8qIFVSTFJlZ2lzdHJ5LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQzFBMzdCNjA5N0M3MTVGMDAxOUYzRDggLyogRE9NSFRNTC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMzE5ODQ4MDgxQTFFNkNCNTAwQTEzMzE4IC8qIERPTUFuaW1hdGlvbkV2
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NURGODEyNzBBQTc3ODcyMDA0ODZBRDcgLyogRE9N
SFRNTEFuY2hvckVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSS9BUElPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkv
QVBJT2JqZWN0LmgKaW5kZXggOTdiZTI2MTliNzE0ODg3YTU5YTk5NzY1MzFjMDc0OTM4YWQ5MTFk
NS4uNmUxZGM5ZmViNmNmNWMzYWNhNDM3MTA2ZjE0MDdkYTE4ZjQ4ZjAyNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJL0FQSU9iamVjdC5oCkBAIC0xNTQsNiArMTU0LDcgQEAgcHVibGljOgogICAg
ICAgICBCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLAogICAgICAgICBCdW5kbGVDU1NTdHlsZURl
Y2xhcmF0aW9uSGFuZGxlLAogICAgICAgICBCdW5kbGVET01XaW5kb3dFeHRlbnNpb24sCisgICAg
ICAgIEJ1bmRsZUZpbGVIYW5kbGUsCiAgICAgICAgIEJ1bmRsZUZyYW1lLAogICAgICAgICBCdW5k
bGVIaXRUZXN0UmVzdWx0LAogICAgICAgICBCdW5kbGVJbnNwZWN0b3IsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL2MvV0tCYXNlLmgKaW5kZXggMTNhZjE1NGViNGQyYjliMzgxZWRlZjRiMWYzMTAzOGRj
NjQ5MDY5My4uODYxMzMxOTUxNWIzODg5MTBiZjJjYTVkYmI3MDc4OTUyZDY1Y2Q0NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaApAQCAtMTQ2LDYgKzE0Niw3IEBAIHR5cGVkZWYg
Y29uc3Qgc3RydWN0IE9wYXF1ZVdLQnVuZGxlQmFja0ZvcndhcmRMaXN0KiBXS0J1bmRsZUJhY2tG
b3J3YXJkTGlzdFJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLQnVuZGxlQmFja0Zv
cndhcmRMaXN0SXRlbSogV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtUmVmOwogdHlwZWRlZiBj
b25zdCBzdHJ1Y3QgT3BhcXVlV0tCdW5kbGVET01DU1NTdHlsZURlY2xhcmF0aW9uKiBXS0J1bmRs
ZUNTU1N0eWxlRGVjbGFyYXRpb25SZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0J1
bmRsZURPTVdpbmRvd0V4dGVuc2lvbiogV0tCdW5kbGVET01XaW5kb3dFeHRlbnNpb25SZWY7Cit0
eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0J1bmRsZUZpbGVIYW5kbGUqIFdLQnVuZGxlRmls
ZUhhbmRsZVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLQnVuZGxlRnJhbWUqIFdL
QnVuZGxlRnJhbWVSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0J1bmRsZUhpdFRl
c3RSZXN1bHQqIFdLQnVuZGxlSGl0VGVzdFJlc3VsdFJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0
IE9wYXF1ZVdLQnVuZGxlSW5zcGVjdG9yKiBXS0J1bmRsZUluc3BlY3RvclJlZjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlMTBj
NjFmM2I0Y2NlZmNjOGM0MDJlOGRiNzlkNDY3ODg0YTIxMTdjLi5iY2VlMTE4N2YwNzc4NjVmYjIw
N2E2ZmFjMDA4MjVkYTE3NDY1YmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMTMwLDYgKzExMzAsMTAgQEAKIAkJN0NCMTZG
RjIxNzI0QkEyODAwN0EwQTk1IC8qIGNvbS5tYWNyb21lZGlhLkZsYXNoIFBsYXllci5wbHVnaW4u
c2IgaW4gQ29weSBQbHVnLWluIFNhbmRib3ggUHJvZmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gN0NCMTZGRTUxNzI0QjlCNTAwN0EwQTk1IC8qIGNvbS5tYWNyb21lZGlh
LkZsYXNoIFBsYXllci5wbHVnaW4uc2IgKi87IH07CiAJCTdDQjE2RkYzMTcyNEJBMkYwMDdBMEE5
NSAvKiBjb20ubWljcm9zb2Z0LlNpbHZlcmxpZ2h0UGx1Z2luLnNiIGluIENvcHkgUGx1Zy1pbiBT
YW5kYm94IFByb2ZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDQjE2
RkU2MTcyNEI5QjUwMDdBMEE5NSAvKiBjb20ubWljcm9zb2Z0LlNpbHZlcmxpZ2h0UGx1Z2luLnNi
ICovOyB9OwogCQk3Q0IxNkZGNDE3MjRCQTMwMDA3QTBBOTUgLyogY29tLm9yYWNsZS5qYXZhLkph
dmFBcHBsZXRQbHVnaW4uc2IgaW4gQ29weSBQbHVnLWluIFNhbmRib3ggUHJvZmlsZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NCMTZGRTcxNzI0QjlCNTAwN0EwQTk1IC8q
IGNvbS5vcmFjbGUuamF2YS5KYXZhQXBwbGV0UGx1Z2luLnNiICovOyB9OworCQk3Q0JCODExQzFB
QTBGOEIxMDA2QjE5NDIgLyogSW5qZWN0ZWRCdW5kbGVGaWxlSGFuZGxlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDQkI4MTFBMUFBMEY4QjEwMDZC
MTk0MiAvKiBJbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGUuY3BwICovOyB9OworCQk3Q0JCODExRDFB
QTBGOEIxMDA2QjE5NDIgLyogSW5qZWN0ZWRCdW5kbGVGaWxlSGFuZGxlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0JCODExQjFBQTBGOEIxMDA2QjE5
NDIgLyogSW5qZWN0ZWRCdW5kbGVGaWxlSGFuZGxlLmggKi87IH07CisJCTdDQkI4MTIwMUFBMEY5
NzAwMDZCMTk0MiAvKiBXS0J1bmRsZUZpbGVIYW5kbGVSZWYuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NCQjgxMUUxQUEwRjk3MDAwNkIxOTQyIC8q
IFdLQnVuZGxlRmlsZUhhbmRsZVJlZi5jcHAgKi87IH07CisJCTdDQkI4MTIxMUFBMEY5NzAwMDZC
MTk0MiAvKiBXS0J1bmRsZUZpbGVIYW5kbGVSZWYuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDQkI4MTFGMUFBMEY5NzAwMDZCMTk0MiAvKiBXS0J1bmRs
ZUZpbGVIYW5kbGVSZWYuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3Q0M5OUEzNjE4RUY3Q0JDMDA0OEM4QjQgLyogV0tTY3JpcHRNZXNzYWdlSW50
ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdD
Qzk5QTM1MThFRjdDQkMwMDQ4QzhCNCAvKiBXS1NjcmlwdE1lc3NhZ2VJbnRlcm5hbC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDQ0NDOEZBMUE1
RjUwRkQwMDhGQjBEQSAvKiBXZWJOYXZpZ2F0aW9uU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NDQ0M4RjgxQTVGNTBGRDAwOEZCMERBIC8q
IFdlYk5hdmlnYXRpb25TdGF0ZS5jcHAgKi87IH07CiAJCTdDQ0NDOEZCMUE1RjUwRkQwMDhGQjBE
QSAvKiBXZWJOYXZpZ2F0aW9uU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDdDQ0NDOEY5MUE1RjUwRkQwMDhGQjBEQSAvKiBXZWJOYXZpZ2F0aW9u
U3RhdGUuaCAqLzsgfTsKQEAgLTMzMTMsNiArMzMxNywxMCBAQAogCQk3Q0IxNkZFNTE3MjRCOUI1
MDA3QTBBOTUgLyogY29tLm1hY3JvbWVkaWEuRmxhc2ggUGxheWVyLnBsdWdpbi5zYiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSAiY29tLm1hY3JvbWVkaWEuRmxhc2ggUGxheWVyLnBsdWdpbi5zYiI7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDQjE2RkU2MTcyNEI5QjUwMDdBMEE5NSAv
KiBjb20ubWljcm9zb2Z0LlNpbHZlcmxpZ2h0UGx1Z2luLnNiICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IGNvbS5taWNyb3NvZnQuU2lsdmVybGlnaHRQbHVnaW4uc2I7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTdDQjE2RkU3MTcyNEI5QjUwMDdBMEE5NSAvKiBjb20ub3JhY2xlLmphdmEu
SmF2YUFwcGxldFBsdWdpbi5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBjb20ub3JhY2xlLmph
dmEuSmF2YUFwcGxldFBsdWdpbi5zYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0NC
QjgxMUExQUEwRjhCMTAwNkIxOTQyIC8qIEluamVjdGVkQnVuZGxlRmlsZUhhbmRsZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZUZpbGVIYW5k
bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3Q0JCODExQjFBQTBGOEIxMDA2
QjE5NDIgLyogSW5qZWN0ZWRCdW5kbGVGaWxlSGFuZGxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEluamVjdGVkQnVuZGxlRmlsZUhhbmRsZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk3Q0JCODExRTFBQTBGOTcwMDA2QjE5NDIgLyogV0tCdW5kbGVGaWxlSGFu
ZGxlUmVmLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLQnVuZGxl
RmlsZUhhbmRsZVJlZi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdDQkI4MTFG
MUFBMEY5NzAwMDZCMTk0MiAvKiBXS0J1bmRsZUZpbGVIYW5kbGVSZWYuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV0tCdW5kbGVGaWxlSGFuZGxlUmVmLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTdDQzk5QTM1MThFRjdDQkMwMDQ4QzhCNCAvKiBXS1NjcmlwdE1l
c3NhZ2VJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1Njcmlw
dE1lc3NhZ2VJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0NDQzhG
ODFBNUY1MEZEMDA4RkIwREEgLyogV2ViTmF2aWdhdGlvblN0YXRlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYk5hdmlnYXRpb25TdGF0ZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDQ0NDOEY5MUE1RjUwRkQwMDhGQjBEQSAvKiBXZWJOYXZp
Z2F0aW9uU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTmF2aWdh
dGlvblN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02NTc1LDYgKzY1ODMs
OCBAQAogCQkJCTkzNUVFQjk4MTI3NzYxNkQwMDMzMjJCOCAvKiBXS0J1bmRsZUJhY2tGb3J3YXJk
TGlzdEl0ZW0uaCAqLywKIAkJCQk1MUZBMkQ3NTE1MjEyRTFFMDBDMUJBMEIgLyogV0tCdW5kbGVE
T01XaW5kb3dFeHRlbnNpb24uY3BwICovLAogCQkJCTUxRkEyRDU0MTUyMTExODYwMEMxQkEwQiAv
KiBXS0J1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5oICovLAorCQkJCTdDQkI4MTFFMUFBMEY5NzAw
MDZCMTk0MiAvKiBXS0J1bmRsZUZpbGVIYW5kbGVSZWYuY3BwICovLAorCQkJCTdDQkI4MTFGMUFB
MEY5NzAwMDZCMTk0MiAvKiBXS0J1bmRsZUZpbGVIYW5kbGVSZWYuaCAqLywKIAkJCQlCQ0QyNUYx
NjExRDZCREUxMDAxNjlCMEUgLyogV0tCdW5kbGVGcmFtZS5jcHAgKi8sCiAJCQkJQkNEMjVGMTUx
MUQ2QkRFMTAwMTY5QjBFIC8qIFdLQnVuZGxlRnJhbWUuaCAqLywKIAkJCQlCQ0YwNDlFNDExRkUy
MEY2MDBGODZBNTggLyogV0tCdW5kbGVGcmFtZVByaXZhdGUuaCAqLywKQEAgLTY2NzYsNiArNjY4
Niw4IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQk3QzRFRDMyNjFBMzExOUQ5MDA3OUJENDkgLyog
SW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLmNwcCAqLywKIAkJCQk3QzRF
RDMyNzFBMzExOUQ5MDA3OUJENDkgLyogSW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9u
SGFuZGxlLmggKi8sCisJCQkJN0NCQjgxMUExQUEwRjhCMTAwNkIxOTQyIC8qIEluamVjdGVkQnVu
ZGxlRmlsZUhhbmRsZS5jcHAgKi8sCisJCQkJN0NCQjgxMUIxQUEwRjhCMTAwNkIxOTQyIC8qIElu
amVjdGVkQnVuZGxlRmlsZUhhbmRsZS5oICovLAogCQkJCUJDNEJFRUFBMTIwQTBBNUYwMEZCQTBD
NyAvKiBJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwICovLAogCQkJCUJDNEJFRUE5MTIwQTBB
NUUwMEZCQTBDNyAvKiBJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuaCAqLywKIAkJCQlCQzMzRTBE
MDEyNDA4RTg2MDAzNjBGM0YgLyogSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5jcHAgKi8sCkBA
IC03OTIxLDYgKzc5MzMsNyBAQAogCQkJCTJERjlFRUVDMUE3ODM2RUUwMEI2Q0ZCRSAvKiBBUElO
YXZpZ2F0aW9uQWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzU0Q0FDQjEyRDY0MjkxMDA1
QzY3QjAgLyogV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDMEU2MTgzMTJENkNCMUQwMDEyQTcyQSAvKiBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eU1l
c3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQk3Q0JCODExRDFBQTBGOEIxMDA2QjE5NDIgLyog
SW5qZWN0ZWRCdW5kbGVGaWxlSGFuZGxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzBFNjA3MzEy
RDZCQzIwMDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkMxQkUxRjIxMkQ1NERCRDAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTc4MDFDMDlBMTQyMjkwQzQwMEZBRjlBRiAvKiBXZWJIaXRU
ZXN0UmVzdWx0LmggaW4gSGVhZGVycyAqLywKQEAgLTgyODEsNiArODI5NCw3IEBACiAJCQkJQkM0
MDc2MEUxMjRGRjAyNzAwNjhGMjBBIC8qIFdLVVJMUmVzcG9uc2UuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDNDA3NjJCMTI0RkYwNDAwMDY4RjIwQSAvKiBXS1VSTFJlc3BvbnNlTlMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFBRkEzQUM5MThFNjFDNjEwMDNDQ0JBRSAvKiBXS1VzZXJDb250ZW50Q29u
dHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0NCQjgxMjExQUEwRjk3MDAwNkIxOTQyIC8q
IFdLQnVuZGxlRmlsZUhhbmRsZVJlZi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFBRjA4QTQxOTI2
ODJEQTAwQjYzOTBDIC8qIFdLVXNlckNvbnRlbnRDb250cm9sbGVySW50ZXJuYWwuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTM3N0VBRDQ4MTdFMkM3N0IwMDJEMTkzRCAvKiBXS1VzZXJDb250ZW50SW5q
ZWN0ZWRGcmFtZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUY2MTEzRTI5MTI2Q0UxOUIwMDU3RDBB
NyAvKiBXS1VzZXJDb250ZW50VVJMUGF0dGVybi5oIGluIEhlYWRlcnMgKi8sCkBAIC05NzIwLDYg
Kzk3MzQsNyBAQAogCQkJCTFDOEUyODM1MTI3NUQ3MzgwMEJDN0JEMCAvKiBXZWJJbnNwZWN0b3JQ
cm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQ0E4QjkzNjEyN0M3NzRFMDA1NzZDMkIgLyog
V2ViSW5zcGVjdG9yUHJveHlNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQ0E4Qjk0NTEyN0M4
ODJBMDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJN0NCQjgxMUMxQUEwRjhCMTAwNkIxOTQyIC8qIEluamVjdGVkQnVuZGxl
RmlsZUhhbmRsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQzg5MUQ2NTE5QjEyNEZGMDBCQTc5
REQgLyogV2ViSW5zcGVjdG9yVUkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUNBOEI5NTQxMjdD
ODkxNTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclVJTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MUNCQkU0QTAxOUI2NkM1MzAwNkI3RDgxIC8qIFdlYkluc3BlY3RvclVJTWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovLApAQCAtOTgyMiw2ICs5ODM3LDcgQEAKIAkJCQlDMDMzN0REODEy
N0E1MUI2MDA4RkY0RjQgLyogV2ViVG91Y2hFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQky
REE5NDRBMzE4ODRFNEYwMDBFRDg2REIgLyogV2ViVG91Y2hFdmVudElPUy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCQ0EwRUY4MDEyMzMxRTc4MDA3RDNDRkIgLyogV2ViVW5kb1N0ZXAuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJN0NCQjgxMjAxQUEwRjk3MDAwNkIxOTQyIC8qIFdLQnVuZGxlRmls
ZUhhbmRsZVJlZi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUFGMDhBRDE5MjY5MzY3MDBCNjM5
MEMgLyogV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFB
QUYwOEI3MTkyNjlFNkQwMEI2MzkwQyAvKiBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFBRjA4QTExOTI2ODFEMTAwQjYzOTBD
IC8qIFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5LmNwcCBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZUFQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVBUElDYXN0LmgKaW5kZXggNDdlNmU1Mzg3NzAzNmVhYmM0ZjAxMTM3
MjQ2NzAzMWU2MzcyMGYxYS4uOWVkODg4NTM2M2RkZjJkM2VmMTVhNjFmOTY2MmU3ZGQwNmUyZGU5
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZUFQSUNhc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQVBJQ2FzdC5oCkBAIC00MCw2ICs0MCw3IEBAIGNs
YXNzIEluamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0OwogY2xhc3MgSW5qZWN0ZWRCdW5kbGVC
YWNrRm9yd2FyZExpc3RJdGVtOwogY2xhc3MgSW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0
aW9uSGFuZGxlOwogY2xhc3MgSW5qZWN0ZWRCdW5kbGVET01XaW5kb3dFeHRlbnNpb247CitjbGFz
cyBJbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGU7CiBjbGFzcyBJbmplY3RlZEJ1bmRsZUhpdFRlc3RS
ZXN1bHQ7CiBjbGFzcyBJbmplY3RlZEJ1bmRsZU5hdmlnYXRpb25BY3Rpb247CiBjbGFzcyBJbmpl
Y3RlZEJ1bmRsZU5vZGVIYW5kbGU7CkBAIC01Niw2ICs1Nyw3IEBAIFdLX0FERF9BUElfTUFQUElO
RyhXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW1SZWYsIEluamVjdGVkQnVuZGxlQmFja0Zvcndh
cmRMaXN0CiBXS19BRERfQVBJX01BUFBJTkcoV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RSZWYsIElu
amVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLQnVuZGxl
Q1NTU3R5bGVEZWNsYXJhdGlvblJlZiwgSW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9u
SGFuZGxlKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uUmVm
LCBJbmplY3RlZEJ1bmRsZURPTVdpbmRvd0V4dGVuc2lvbikKK1dLX0FERF9BUElfTUFQUElORyhX
S0J1bmRsZUZpbGVIYW5kbGVSZWYsIEluamVjdGVkQnVuZGxlRmlsZUhhbmRsZSkKIFdLX0FERF9B
UElfTUFQUElORyhXS0J1bmRsZUZyYW1lUmVmLCBXZWJGcmFtZSkKIFdLX0FERF9BUElfTUFQUElO
RyhXS0J1bmRsZUhpdFRlc3RSZXN1bHRSZWYsIEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdCkK
IFdLX0FERF9BUElfTUFQUElORyhXS0J1bmRsZUluc3BlY3RvclJlZiwgV2ViSW5zcGVjdG9yKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZUZpbGVIYW5kbGVSZWYuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZpbGVIYW5kbGVSZWYuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmRhOGNhZTg2ZTRmNjI1NzhjZjVhY2U3ZDg4YTllYTYyMjEzZDJkY2UKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlRmlsZUhhbmRsZVJlZi5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXS0J1bmRsZUZpbGVIYW5kbGVSZWYuaCIKKworI2lu
Y2x1ZGUgIkluamVjdGVkQnVuZGxlRmlsZUhhbmRsZS5oIgorI2luY2x1ZGUgIldLQVBJQ2FzdC5o
IgorI2luY2x1ZGUgIldLQnVuZGxlQVBJQ2FzdC5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0
OworCitXS1R5cGVJRCBXS0J1bmRsZUZpbGVIYW5kbGVHZXRUeXBlSUQoKQoreworICAgIHJldHVy
biB0b0FQSShJbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGU6OkFQSVR5cGUpOworfQorCitXS0J1bmRs
ZUZpbGVIYW5kbGVSZWYgV0tCdW5kbGVGaWxlSGFuZGxlQ3JlYXRlV2l0aFBhdGgoV0tTdHJpbmdS
ZWYgcGF0aFJlZikKK3sKKyAgICByZXR1cm4gdG9BUEkoSW5qZWN0ZWRCdW5kbGVGaWxlSGFuZGxl
OjpjcmVhdGUodG9XVEZTdHJpbmcocGF0aFJlZikpLmxlYWtSZWYoKSk7Cit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
RmlsZUhhbmRsZVJlZi5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvYy9XS0J1bmRsZUZpbGVIYW5kbGVSZWYuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMWExNmZiNjk1OTFh
YWMzMmEzOGVjNjZkN2FkMTYxNjBkZjA1MWRiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZpbGVIYW5kbGVS
ZWYuaApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXS0J1bmRsZUZpbGVI
YW5kbGVSZWZfaAorI2RlZmluZSBXS0J1bmRsZUZpbGVIYW5kbGVSZWZfaAorCisjaW5jbHVkZSA8
V2ViS2l0L1dLQmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2Vu
ZGlmCisKK1dLX0VYUE9SVCBXS1R5cGVJRCBXS0J1bmRsZUZpbGVIYW5kbGVHZXRUeXBlSUQoKTsK
KworV0tfRVhQT1JUIFdLQnVuZGxlRmlsZUhhbmRsZVJlZiBXS0J1bmRsZUZpbGVIYW5kbGVDcmVh
dGVXaXRoUGF0aChXS1N0cmluZ1JlZiBwYXRoKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9Cisj
ZW5kaWYKKworCisjZW5kaWYgLyogV0tCdW5kbGVGaWxlSGFuZGxlUmVmX2ggKi8KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5k
bGVGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlRnJhbWUuY3BwCmluZGV4IGI3ODE0MDdmMTU0YzZkYTZjMjJjNjg4NWU1Y2E2
YTMxYTM0OGFlZDguLmEwZjYyNGUwNzQxMmY5NDFkMzBmNDQ1ZTg0N2IxNTZjZWRlYjAxNDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmNwcApAQCAtMjksNiArMjksNyBAQAogCiAjaW5j
bHVkZSAiQVBJQXJyYXkuaCIKICNpbmNsdWRlICJBUElTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1
ZGUgIkluamVjdGVkQnVuZGxlRmlsZUhhbmRsZS5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxl
SGl0VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5oIgog
I2luY2x1ZGUgIkluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuaCIKQEAgLTEyMiw2ICsxMjMsMTEg
QEAgSlNWYWx1ZVJlZiBXS0J1bmRsZUZyYW1lR2V0SmF2YVNjcmlwdFdyYXBwZXJGb3JSYW5nZUZv
cldvcmxkKFdLQnVuZGxlRnJhbWVSZWYgZnIKICAgICByZXR1cm4gdG9JbXBsKGZyYW1lUmVmKS0+
anNXcmFwcGVyRm9yV29ybGQodG9JbXBsKHJhbmdlSGFuZGxlUmVmKSwgdG9JbXBsKHdvcmxkUmVm
KSk7CiB9CiAKK0pTVmFsdWVSZWYgV0tCdW5kbGVGcmFtZUdldEphdmFTY3JpcHRXcmFwcGVyRm9y
RmlsZUZvcldvcmxkKFdLQnVuZGxlRnJhbWVSZWYgZnJhbWVSZWYsIFdLQnVuZGxlRmlsZUhhbmRs
ZVJlZiBmaWxlSGFuZGxlUmVmLCBXS0J1bmRsZVNjcmlwdFdvcmxkUmVmIHdvcmxkUmVmKQorewor
ICAgIHJldHVybiB0b0ltcGwoZnJhbWVSZWYpLT5qc1dyYXBwZXJGb3JXb3JsZCh0b0ltcGwoZmls
ZUhhbmRsZVJlZiksIHRvSW1wbCh3b3JsZFJlZikpOworfQorCiBXS1N0cmluZ1JlZiBXS0J1bmRs
ZUZyYW1lQ29weU5hbWUoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZVJlZikKIHsKICAgICByZXR1cm4g
dG9Db3BpZWRBUEkodG9JbXBsKGZyYW1lUmVmKS0+bmFtZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRs
ZUZyYW1lLmgKaW5kZXggNzBjYzE2NDdjYzM4N2RmYmU1N2Y4ZTFmNzQ2OTc4M2E4NzQwNzJlNS4u
ODRkZGZjMDcxN2I1ODRkMGY0ZTgxZmFiMzY0MTUwZjNjNjgwMTMzMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1l
LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZUZyYW1lLmgKQEAgLTU1LDYgKzU1LDcgQEAgV0tfRVhQT1JUIFdLQnVuZGxlRnJhbWVS
ZWYgV0tCdW5kbGVGcmFtZUZvckphdmFTY3JpcHRDb250ZXh0KEpTQ29udGV4dFJlZiBjb250ZXgK
IAogV0tfRVhQT1JUIEpTVmFsdWVSZWYgV0tCdW5kbGVGcmFtZUdldEphdmFTY3JpcHRXcmFwcGVy
Rm9yTm9kZUZvcldvcmxkKFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLQnVuZGxlTm9kZUhhbmRs
ZVJlZiBub2RlSGFuZGxlLCBXS0J1bmRsZVNjcmlwdFdvcmxkUmVmIHdvcmxkKTsKIFdLX0VYUE9S
VCBKU1ZhbHVlUmVmIFdLQnVuZGxlRnJhbWVHZXRKYXZhU2NyaXB0V3JhcHBlckZvclJhbmdlRm9y
V29ybGQoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tCdW5kbGVSYW5nZUhhbmRsZVJlZiByYW5n
ZUhhbmRsZSwgV0tCdW5kbGVTY3JpcHRXb3JsZFJlZiB3b3JsZCk7CitXS19FWFBPUlQgSlNWYWx1
ZVJlZiBXS0J1bmRsZUZyYW1lR2V0SmF2YVNjcmlwdFdyYXBwZXJGb3JGaWxlRm9yV29ybGQoV0tC
dW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tCdW5kbGVGaWxlSGFuZGxlUmVmIGZpbGVIYW5kbGUsIFdL
QnVuZGxlU2NyaXB0V29ybGRSZWYgd29ybGQpOwogCiBXS19FWFBPUlQgV0tCdW5kbGVQYWdlUmVm
IFdLQnVuZGxlRnJhbWVHZXRQYWdlKFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3Rl
ZEJ1bmRsZUZpbGVIYW5kbGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVGaWxlSGFuZGxlLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOTM0
MDNhNGU4Y2M0YTI2MGI3ZmQ1NjgwOGQwODY0ZjNkNTMzMjg5Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5k
bGVGaWxlSGFuZGxlLmNwcApAQCAtMCwwICsxLDgwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlRmlsZUhhbmRsZS5oIgorCisjaW5j
bHVkZSA8V2ViQ29yZS9GaWxlLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRl
IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCit0eXBlZGVmIEhhc2hNYXA8RmlsZSosIEluamVjdGVkQnVuZGxl
RmlsZUhhbmRsZSo+IERPTUhhbmRsZUNhY2hlOworCitzdGF0aWMgRE9NSGFuZGxlQ2FjaGUmIGRv
bUhhbmRsZUNhY2hlKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RE9NSGFuZGxlQ2Fj
aGU+IGNhY2hlOworICAgIHJldHVybiBjYWNoZTsKK30KKworUmVmUHRyPEluamVjdGVkQnVuZGxl
RmlsZUhhbmRsZT4gSW5qZWN0ZWRCdW5kbGVGaWxlSGFuZGxlOjpjcmVhdGUoY29uc3QgU3RyaW5n
JiBwYXRoKQoreworICAgIGF1dG8gZmlsZSA9IEZpbGU6OmNyZWF0ZShwYXRoKTsKKyAgICByZXR1
cm4gYWRvcHRSZWYobmV3IEluamVjdGVkQnVuZGxlRmlsZUhhbmRsZShmaWxlLmdldCgpKSk7Cit9
CisKK1JlZlB0cjxJbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGU+IEluamVjdGVkQnVuZGxlRmlsZUhh
bmRsZTo6Z2V0T3JDcmVhdGUoRmlsZSogZmlsZSkKK3sKKyAgICBpZiAoIWZpbGUpCisgICAgICAg
IHJldHVybiBudWxscHRyOworCisgICAgRE9NSGFuZGxlQ2FjaGU6OkFkZFJlc3VsdCByZXN1bHQg
PSBkb21IYW5kbGVDYWNoZSgpLmFkZChmaWxlLCBudWxscHRyKTsKKyAgICBpZiAoIXJlc3VsdC5p
c05ld0VudHJ5KQorICAgICAgICByZXR1cm4gUmVmUHRyPEluamVjdGVkQnVuZGxlRmlsZUhhbmRs
ZT4ocmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSk7CisKKyAgICBSZWZQdHI8SW5qZWN0ZWRCdW5kbGVG
aWxlSGFuZGxlPiBmaWxlSGFuZGxlID0gYWRvcHRSZWYobmV3IEluamVjdGVkQnVuZGxlRmlsZUhh
bmRsZSgqZmlsZSkpOworICAgIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSBmaWxlSGFuZGxlLmdl
dCgpOworICAgIHJldHVybiBmaWxlSGFuZGxlOworfQorCitJbmplY3RlZEJ1bmRsZUZpbGVIYW5k
bGU6OkluamVjdGVkQnVuZGxlRmlsZUhhbmRsZShGaWxlJiBmaWxlKQorICAgIDogbV9maWxlKGZp
bGUpCit7Cit9CisKK0luamVjdGVkQnVuZGxlRmlsZUhhbmRsZTo6fkluamVjdGVkQnVuZGxlRmls
ZUhhbmRsZSgpCit7CisgICAgZG9tSGFuZGxlQ2FjaGUoKS5yZW1vdmUobV9maWxlLnB0cigpKTsK
K30KKworRmlsZSogSW5qZWN0ZWRCdW5kbGVGaWxlSGFuZGxlOjpjb3JlRmlsZSgpCit7CisgICAg
cmV0dXJuIG1fZmlsZS5wdHIoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3Rl
ZEJ1bmRsZUZpbGVIYW5kbGUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvRE9NL0luamVjdGVkQnVuZGxlRmlsZUhhbmRsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI3ZmQyY2I1
ZDQxNjRkMWNlM2Y5ZjJlMTlkZjU0MjBlNTM1ZDljMWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZUZp
bGVIYW5kbGUuaApAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBJbmplY3Rl
ZEJ1bmRsZUZpbGVIYW5kbGVfaAorI2RlZmluZSBJbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGVfaAor
CisjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworY2xhc3MgRmlsZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Ns
YXNzIEluamVjdGVkQnVuZGxlRmlsZUhhbmRsZSA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJ
OjpPYmplY3Q6OlR5cGU6OkJ1bmRsZUZpbGVIYW5kbGU+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UmVmUHRyPEluamVjdGVkQnVuZGxlRmlsZUhhbmRsZT4gY3JlYXRlKGNvbnN0IFdURjo6U3RyaW5n
Jik7CisgICAgc3RhdGljIFJlZlB0cjxJbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGU+IGdldE9yQ3Jl
YXRlKFdlYkNvcmU6OkZpbGUqKTsKKworICAgIHZpcnR1YWwgfkluamVjdGVkQnVuZGxlRmlsZUhh
bmRsZSgpOworCisgICAgV2ViQ29yZTo6RmlsZSogY29yZUZpbGUoKTsKKworcHJpdmF0ZToKKyAg
ICBJbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGUoV2ViQ29yZTo6RmlsZSYpOworCisgICAgUmVmPFdl
YkNvcmU6OkZpbGU+IG1fZmlsZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gSW5qZWN0ZWRCdW5kbGVGaWxlSGFuZGxlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCmluZGV4IDE1MTNiODgyZWY3NTUzYWUzNmZkNmRl
Y2FkZWVkNTRjYjcyNzI3MDcuLjg1ZDgzMzdhNGMwM2UxZjZmMjM0NjRjMjFiZWI0OGQwZDc2NmMz
MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFt
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNw
cApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQVBJQXJyYXkuaCIKICNpbmNsdWRlICJE
b3dubG9hZE1hbmFnZXIuaCIKKyNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZUZpbGVIYW5kbGUuaCIK
ICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQuaCIKICNpbmNsdWRlICJJbmpl
Y3RlZEJ1bmRsZU5vZGVIYW5kbGUuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVJhbmdlSGFu
ZGxlLmgiCkBAIC00OSw2ICs1MCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9DaHJvbWUuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50TG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9FdmVu
dEhhbmRsZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZpbGUuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0ZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZVNuYXBzaG90dGluZy5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvRnJhbWVWaWV3Lmg+CkBAIC02MCw2ICs2Miw3IEBACiAjaW5jbHVkZSA8V2Vi
Q29yZS9JbWFnZUJ1ZmZlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSlNDU1NTdHlsZURlY2xhcmF0
aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9KU0VsZW1lbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L0pTRmlsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSlNSYW5nZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvTWFpbkZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JraW5nQ29udGV4dC5oPgpA
QCAtNjg1LDYgKzY4OCwxOCBAQCBKU1ZhbHVlUmVmIFdlYkZyYW1lOjpqc1dyYXBwZXJGb3JXb3Js
ZChJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlKiByYW5nZUhhbmRsZSwgSQogICAgIHJldHVybiB0
b1JlZihleGVjLCB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgcmFuZ2VIYW5kbGUtPmNvcmVSYW5n
ZSgpKSk7CiB9CiAKK0pTVmFsdWVSZWYgV2ViRnJhbWU6OmpzV3JhcHBlckZvcldvcmxkKEluamVj
dGVkQnVuZGxlRmlsZUhhbmRsZSogZmlsZUhhbmRsZSwgSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3Js
ZCogd29ybGQpCit7CisgICAgaWYgKCFtX2NvcmVGcmFtZSkKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisKKyAgICBKU0RPTVdpbmRvdyogZ2xvYmFsT2JqZWN0ID0gbV9jb3JlRnJhbWUtPnNjcmlw
dCgpLmdsb2JhbE9iamVjdCh3b3JsZC0+Y29yZVdvcmxkKCkpOworICAgIEV4ZWNTdGF0ZSogZXhl
YyA9IGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpOworCisgICAgSlNMb2NrSG9sZGVyIGxvY2so
ZXhlYyk7CisgICAgcmV0dXJuIHRvUmVmKGV4ZWMsIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBm
aWxlSGFuZGxlLT5jb3JlRmlsZSgpKSk7Cit9CisKIFN0cmluZyBXZWJGcmFtZTo6Y291bnRlclZh
bHVlKEpTT2JqZWN0UmVmIGVsZW1lbnQpCiB7CiAgICAgaWYgKCF0b0pTKGVsZW1lbnQpLT5pbmhl
cml0cyhKU0VsZW1lbnQ6OmluZm8oKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJGcmFtZS5oCmluZGV4IDNhNTczZTAzZjRkYzVkZmI2NWE4MzUxZWQxZmQyNjZkMTMy
NzMxMjQuLjcxOTVkNmFjYTg0OWMzNzE5ZmY1MTRjMDk2NTJjZjNkNGU5OTk4NzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oCkBAIC01NCw2ICs1NCw3
IEBAIGNsYXNzIFVSTDsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIEluamVjdGVkQnVu
ZGxlRmlsZUhhbmRsZTsKIGNsYXNzIEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdDsKIGNsYXNz
IEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZTsKIGNsYXNzIEluamVjdGVkQnVuZGxlUmFuZ2VIYW5k
bGU7CkBAIC0xMTcsNiArMTE4LDcgQEAgcHVibGljOgogCiAgICAgSlNWYWx1ZVJlZiBqc1dyYXBw
ZXJGb3JXb3JsZChJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUqLCBJbmplY3RlZEJ1bmRsZVNjcmlw
dFdvcmxkKik7CiAgICAgSlNWYWx1ZVJlZiBqc1dyYXBwZXJGb3JXb3JsZChJbmplY3RlZEJ1bmRs
ZVJhbmdlSGFuZGxlKiwgSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZCopOworICAgIEpTVmFsdWVS
ZWYganNXcmFwcGVyRm9yV29ybGQoSW5qZWN0ZWRCdW5kbGVGaWxlSGFuZGxlKiwgSW5qZWN0ZWRC
dW5kbGVTY3JpcHRXb3JsZCopOwogCiAgICAgc3RhdGljIFN0cmluZyBjb3VudGVyVmFsdWUoSlNP
YmplY3RSZWYgZWxlbWVudCk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCA0NmY4ZGQwMzY5ZWVjZDY1NWZmNTY1MDQ4NWFlNjEyYjEwNzkzNzVk
Li4yYzljMDk4OWMxZjM5M2M2ODc2MjZkOGMzYWY3MTMxZTQzNTJmMjgzIDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIw
MTUtMDItMjcgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgV2Vi
S2l0MiBTUEkgdG8gY3JlYXRlIGEgRE9NIEZpbGUgb2JqZWN0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDIxMDkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSB0ZXN0IGZvciBXS0J1bmRsZUZpbGVI
YW5kbGVSZWYuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDIvV0tCdW5kbGVGaWxlSGFuZGxlLmNwcDogQWRkZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpkaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dLQnVuZGxlRmls
ZUhhbmRsZV9CdW5kbGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OldLQnVu
ZGxlRmlsZUhhbmRsZVRlc3Q6OldLQnVuZGxlRmlsZUhhbmRsZVRlc3QpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9idW5kbGUtZmlsZS5odG1sOiBBZGRlZC4KKwogMjAx
NS0wMi0yNyAgTWljaGFlbCBTYWJvZmYgIDxtc2Fib2ZmQGFwcGxlLmNvbT4KIAogICAgICAgICBB
ZGQgYWJpbGl0eSBmb3IgcnVuLWpzYy1iZW5jaG1hcmtzIHRvIHNldCBsaWJyYXJ5IHBhdGggZnJv
bSB0ZXN0IGJpbmFyeSB3aGVuIHJ1biBvbiBhIGJ1aWxkIGJvdApkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCBmYjUwMzM3Yjc5ZWYyYWNmMjEzMGQyYTk0Y2Q2ZDJhMWQ4MGU3OWNlLi45OTU4OGE4
YjZhZDkwMjNlMzRjNjZkNDUwYmM2MDBjYmQwNzY0Mjc5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNTYsNiArNTYsOSBAQAogCQk3NjczNDk5RDE5MzBDNUJCMDBFNDRERjkgLyogU3RvcExv
YWRpbmdEdXJpbmdEaWRGYWlsUHJvdmlzaW9uYWxMb2FkX2J1bmRsZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NjczNDk5QTE5MzAxODJFMDBFNDRE
RjkgLyogU3RvcExvYWRpbmdEdXJpbmdEaWRGYWlsUHJvdmlzaW9uYWxMb2FkX2J1bmRsZS5jcHAg
Ki87IH07CiAJCTc2RTE4MkREMTU0NzU2OTEwMEYxRkFERCAvKiBXaWxsU2VuZFN1Ym1pdEV2ZW50
X0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3NkUxODJEQzE1NDc1NjkxMDBGMUZBREQgLyogV2lsbFNlbmRTdWJtaXRFdmVudF9CdW5kbGUu
Y3BwICovOyB9OwogCQk3NkUxODJERjE1NDc2N0U2MDBGMUZBREQgLyogYXV0by1zdWJtaXR0aW5n
LWZvcm0uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3NkUxODJERTE1NDc1QTgzMDBGMUZBREQgLyogYXV0by1zdWJtaXR0aW5nLWZvcm0u
aHRtbCAqLzsgfTsKKwkJN0M0ODZCQTExQUExMjU2NzAwM0Y2RjlCIC8qIGJ1bmRsZS1maWxlLmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
N0M0ODZCQTAxQUExMjU0QjAwM0Y2RjlCIC8qIGJ1bmRsZS1maWxlLmh0bWwgKi87IH07CisJCTdD
NTRBNEJFMUFBMTFDQ0EwMDM4MEY3OCAvKiBXS0J1bmRsZUZpbGVIYW5kbGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M1NEE0QkMxQUExMUNDQTAw
MzgwRjc4IC8qIFdLQnVuZGxlRmlsZUhhbmRsZS5jcHAgKi87IH07CisJCTdDNTRBNEMxMUFBMTFD
RTQwMDM4MEY3OCAvKiBXS0J1bmRsZUZpbGVIYW5kbGVfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNTRBNEJGMUFBMTFDRTQwMDM4MEY3
OCAvKiBXS0J1bmRsZUZpbGVIYW5kbGVfQnVuZGxlLmNwcCAqLzsgfTsKIAkJN0M4OUQyQUMxQTY5
QjgwRDAwM0E1RkRFIC8qIFdLUGFnZUNvbmZpZ3VyYXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M4OUQyQUExQTY5QjgwRDAwM0E1RkRFIC8q
IFdLUGFnZUNvbmZpZ3VyYXRpb24uY3BwICovOyB9OwogCQk3QzlFRDk4QjE3QTE5RjRCMDBFNERD
MzMgLyogYXR0cmlidXRlZFN0cmluZ1N0cmlrZXRocm91Z2guaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzlFRDk4QTE3QTE5RDA2MDBF
NERDMzMgLyogYXR0cmlidXRlZFN0cmluZ1N0cmlrZXRocm91Z2guaHRtbCAqLzsgfTsKIAkJN0ND
RTdFQTQxQTQxMTlGMzAwNDQ3QzRDIC8qIEluc3RhbmNlTWV0aG9kU3dpenpsZXIubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMDg1ODdGRjEzRkVDM0E2
MDAxRUY0RTUgLyogSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbSAqLzsgfTsKQEAgLTMxNCw2ICsz
MTcsNyBAQAogCQkJZHN0UGF0aCA9IFRlc3RXZWJLaXRBUEkucmVzb3VyY2VzOwogCQkJZHN0U3Vi
Zm9sZGVyU3BlYyA9IDc7CiAJCQlmaWxlcyA9ICgKKwkJCQk3QzQ4NkJBMTFBQTEyNTY3MDAzRjZG
OUIgLyogYnVuZGxlLWZpbGUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQkxQTlFNTJD
OTEzRTY1RUY0MDA2OTE3RjUgLyogMTgtY2hhcmFjdGVycy5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovLAogCQkJCTM3OTAyOEI5MTRGQUMyNEMwMDdFNkI0MyAvKiBhY2NlcHRzRmlyc3RNb3VzZS5o
dG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTJEOTUwRkMwMUEyMzBDM0EwMDAxMjQzNCAv
KiBhY3Rpb24tbWVudS10YXJnZXRzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC01MDcs
NiArNTExLDkgQEAKIAkJNzZFMTgyRDkxNTQ3NTUwMTAwRjFGQUREIC8qIFdpbGxTZW5kU3VibWl0
RXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2lsbFNlbmRT
dWJtaXRFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc2RTE4MkRDMTU0
NzU2OTEwMEYxRkFERCAvKiBXaWxsU2VuZFN1Ym1pdEV2ZW50X0J1bmRsZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXaWxsU2VuZFN1Ym1pdEV2ZW50X0J1bmRsZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc2RTE4MkRFMTU0NzVBODMwMEYxRkFE
RCAvKiBhdXRvLXN1Ym1pdHRpbmctZm9ybS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRo
ID0gImF1dG8tc3VibWl0dGluZy1mb3JtLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk3QzQ4NkJBMDFBQTEyNTRCMDAzRjZGOUIgLyogYnVuZGxlLWZpbGUuaHRtbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0
aCA9ICJidW5kbGUtZmlsZS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0M1
NEE0QkMxQUExMUNDQTAwMzgwRjc4IC8qIFdLQnVuZGxlRmlsZUhhbmRsZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS0J1bmRsZUZpbGVIYW5kbGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QzU0QTRCRjFBQTExQ0U0MDAzODBGNzggLyogV0tC
dW5kbGVGaWxlSGFuZGxlX0J1bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXS0J1bmRsZUZpbGVIYW5kbGVfQnVuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJN0M2QkJEOEExOUNFQTU0MzAwQzFGNUUwIC8qIENvdW50ZXJzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvdW50ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTdDNkJCRDhCMTlDRUE2MzAwMEMxRjVFMCAvKiBDb3VudGVycy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb3VudGVycy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNzRENDJEMTg4MjI4RjMwMEU1RUQ1NyAvKiBTdHJpbmdW
aWV3LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0cmluZ1ZpZXcu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTgxLDYgKzk4OCw4IEBACiAJCQkJ
N0NGQkNBRTMxNzQzMjM4RTAwQjJCRkNGIC8qIFdpbGxMb2FkX0J1bmRsZS5jcHAgKi8sCiAJCQkJ
NzZFMTgyRDkxNTQ3NTUwMTAwRjFGQUREIC8qIFdpbGxTZW5kU3VibWl0RXZlbnQuY3BwICovLAog
CQkJCTc2RTE4MkRDMTU0NzU2OTEwMEYxRkFERCAvKiBXaWxsU2VuZFN1Ym1pdEV2ZW50X0J1bmRs
ZS5jcHAgKi8sCisJCQkJN0M1NEE0QkMxQUExMUNDQTAwMzgwRjc4IC8qIFdLQnVuZGxlRmlsZUhh
bmRsZS5jcHAgKi8sCisJCQkJN0M1NEE0QkYxQUExMUNFNDAwMzgwRjc4IC8qIFdLQnVuZGxlRmls
ZUhhbmRsZV9CdW5kbGUuY3BwICovLAogCQkJCUExRkRGRDJFMTlDMjg4QkIwMDUxNDhBNCAvKiBX
S0ltYWdlQ3JlYXRlQ0dJbWFnZUNyYXNoLmNwcCAqLywKIAkJCQk3Qzg5RDJBQTFBNjlCODBEMDAz
QTVGREUgLyogV0tQYWdlQ29uZmlndXJhdGlvbi5jcHAgKi8sCiAJCQkJNTFFOTMwMTYxNTZCMTNF
MTAwNEM5OURGIC8qIFdLUGFnZUdldFNjYWxlRmFjdG9yTm90WmVyby5jcHAgKi8sCkBAIC0xMDQx
LDYgKzEwNTAsNyBAQAogCQkJCTkzRDNEMTlCMTdCMUE3QjAwMEM3QzQxNSAvKiBhbGwtY29udGVu
dC1pbi1vbmUtaWZyYW1lLmh0bWwgKi8sCiAJCQkJRjZCN0JFOTYxNzQ2OUI3RTAwOEEzNDQ1IC8q
IGFzc29jaWF0ZS1mb3JtLWNvbnRyb2xzLmh0bWwgKi8sCiAJCQkJNzZFMTgyREUxNTQ3NUE4MzAw
RjFGQUREIC8qIGF1dG8tc3VibWl0dGluZy1mb3JtLmh0bWwgKi8sCisJCQkJN0M0ODZCQTAxQUEx
MjU0QjAwM0Y2RjlCIC8qIGJ1bmRsZS1maWxlLmh0bWwgKi8sCiAJCQkJMUE1MEFBMUYxQTJBNEVB
NTAwRjRDMzQ1IC8qIGNsb3NlLWZyb20td2l0aGluLWNyZWF0ZS1wYWdlLmh0bWwgKi8sCiAJCQkJ
MjkwRjQyNzQxNzJBMUZERTAwOTM5RkYwIC8qIGN1c3RvbS1wcm90b2NvbC1zeW5jLXhoci5odG1s
ICovLAogCQkJCUM1RTFBRkZEMTZCMjIxNzkwMDZDQzFGMiAvKiBleGVjQ29weS5odG1sICovLApA
QCAtMTQwNSw2ICsxNDE1LDcgQEAKIAkJCQk3Q0NFN0VDMzFBNDExQTdFMDA0NDdDNEMgLyogSW5z
cGVjdG9yQmFyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFQTQxQTQxMTlGMzAwNDQ3QzRD
IC8qIEluc3RhbmNlTWV0aG9kU3dpenpsZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VE
QTFBNDExQTg3MDA0NDdDNEMgLyogSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbSBpbiBTb3VyY2Vz
ICovLAorCQkJCTdDNTRBNEJFMUFBMTFDQ0EwMDM4MEY3OCAvKiBXS0J1bmRsZUZpbGVIYW5kbGUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMzcxQTQxMUI4RTAwNDQ3QzRDIC8qIEludGVn
ZXJUb1N0cmluZ0NvbnZlcnNpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFQUQxQTQx
MUEzNDAwNDQ3QzRDIC8qIEphdmFTY3JpcHRUZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdD
Q0U3RUE1MUE0MTFBMDgwMDQ0N0M0QyAvKiBKYXZhU2NyaXB0VGVzdE1hYy5tbSBpbiBTb3VyY2Vz
ICovLApAQCAtMTU0NSw2ICsxNTU2LDcgQEAKIAkJCQlGNjYwQUExMTE1QTVGNjMxMDAzQTEyNDMg
LyogR2V0SW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhQ2FsbGJhY2tfQnVuZGxl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTRCRkRGRkE3MTMxNDc3NkMwMDYxRjI0QiAvKiBIaXRU
ZXN0UmVzdWx0Tm9kZUhhbmRsZV9CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM1NzVB
QjAxMjZFODNDODAwNkYwRjEyIC8qIEluamVjdGVkQnVuZGxlQmFzaWNfQnVuZGxlLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTdDNTRBNEMxMUFBMTFDRTQwMDM4MEY3OCAvKiBXS0J1bmRsZUZpbGVI
YW5kbGVfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNTc1QUEyMTI2RTc2NjAwMDZG
MEYxMiAvKiBJbmplY3RlZEJ1bmRsZUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MUFFREUyMjYxM0U1RTdFNzAwRTYyRkU4IC8qIEluamVjdGVkQnVuZGxlQ29udHJvbGxlck1hYy5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTM3OEU2NDc3MTYzMjY1NUUwMEI2QzY3NiAvKiBJbmplY3Rl
ZEJ1bmRsZUZyYW1lSGl0VGVzdF9CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV0tCdW5kbGVGaWxlSGFuZGxlLmNw
cCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9XS0J1bmRsZUZpbGVIYW5kbGUu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmI5YTg0ZmY4MDQ1YjVhMDUyMGQ4NjBjZTMzZjg1NTdkY2YzNjBlYzUK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV0tC
dW5kbGVGaWxlSGFuZGxlLmNwcApAQCAtMCwwICsxLDg2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorCisjaWYgV0tfSEFWRV9DX1NQSQorCisjaW5jbHVkZSAiUGxhdGZvcm1V
dGlsaXRpZXMuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVdlYlZpZXcuaCIKKyNpbmNsdWRlICJUZXN0
LmgiCisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworc3RhdGljIGJvb2wgZG9uZTsKK3N0
YXRpYyBib29sIGxvYWREb25lOworCitzdGF0aWMgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUZyb21J
bmplY3RlZEJ1bmRsZShXS0NvbnRleHRSZWYsIFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1lLCBXS1R5
cGVSZWYgYm9keSwgY29uc3Qgdm9pZCopCit7CisgICAgaWYgKCFXS1N0cmluZ0lzRXF1YWxUb1VU
RjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU1VDQ0VTUyIpKQorICAgICAgICBGQUlMKCk7CisgICAg
ZWxzZQorICAgICAgICBTVUNDRUVEKCk7CisKKyAgICBkb25lID0gdHJ1ZTsKK30KKworc3RhdGlj
IHZvaWQgZGlkRmluaXNoTG9hZEZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZy
YW1lLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqKQoreworICAgIGxvYWREb25lID0g
dHJ1ZTsKK30KKworVEVTVChXZWJLaXQyLCBXS0J1bmRsZUZpbGVIYW5kbGUpCit7CisgICAgV0tS
ZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVDb250
ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJXS0J1bmRsZUZpbGVIYW5kbGVUZXN0IikpOworCisg
ICAgV0tDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnRWMCBpbmplY3RlZEJ1bmRsZUNsaWVudDsK
KyAgICBtZW1zZXQoJmluamVjdGVkQnVuZGxlQ2xpZW50LCAwLCBzaXplb2YoaW5qZWN0ZWRCdW5k
bGVDbGllbnQpKTsKKyAgICBpbmplY3RlZEJ1bmRsZUNsaWVudC5iYXNlLnZlcnNpb24gPSAwOwor
ICAgIGluamVjdGVkQnVuZGxlQ2xpZW50LmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVu
ZGxlID0gZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGU7CisgICAgV0tDb250ZXh0
U2V0SW5qZWN0ZWRCdW5kbGVDbGllbnQoY29udGV4dC5nZXQoKSwgJmluamVjdGVkQnVuZGxlQ2xp
ZW50LmJhc2UpOworCisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7
CisKKyAgICBXS1BhZ2VMb2FkZXJDbGllbnRWMCBsb2FkZXJDbGllbnQ7CisgICAgbWVtc2V0KCZs
b2FkZXJDbGllbnQsIDAsIHNpemVvZihsb2FkZXJDbGllbnQpKTsKKyAgICBsb2FkZXJDbGllbnQu
YmFzZS52ZXJzaW9uID0gMDsKKyAgICBsb2FkZXJDbGllbnQuZGlkRmluaXNoTG9hZEZvckZyYW1l
ID0gZGlkRmluaXNoTG9hZEZvckZyYW1lOworICAgIFdLUGFnZVNldFBhZ2VMb2FkZXJDbGllbnQo
d2ViVmlldy5wYWdlKCksICZsb2FkZXJDbGllbnQuYmFzZSk7CisKKyAgICBXS1BhZ2VMb2FkVVJM
KHdlYlZpZXcucGFnZSgpLCBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJidW5k
bGUtZmlsZSIsICJodG1sIikpLmdldCgpKTsKKyAgICBVdGlsOjpydW4oJmxvYWREb25lKTsKKyAg
ICAKKyAgICAvLyBHZXQgcGF0aCB0byBhIGZpbGUuCisgICAgYXV0byB1cmxUb0ZpbGUgPSBhZG9w
dFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJzaW1wbGUiLCAiaHRtbCIpKTsKKyAgICBh
dXRvIHBhdGhUb0ZpbGUgPSBhZG9wdFdLKFdLVVJMQ29weVBhdGgodXJsVG9GaWxlLmdldCgpKSk7
CisKKyAgICBXS0NvbnRleHRQb3N0TWVzc2FnZVRvSW5qZWN0ZWRCdW5kbGUoY29udGV4dC5nZXQo
KSwgVXRpbDo6dG9XSygiVGVzdEZpbGUiKS5nZXQoKSwgcGF0aFRvRmlsZS5nZXQoKSk7CisKKyAg
ICBVdGlsOjpydW4oJmRvbmUpOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dL
QnVuZGxlRmlsZUhhbmRsZV9CdW5kbGUuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyL1dLQnVuZGxlRmlsZUhhbmRsZV9CdW5kbGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI3ZDM1OWJh
NjJjYjc4NWY3ZGQ3OWY0NTFlYzlmMmNmYzZlOWRlNjIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV0tCdW5kbGVGaWxlSGFuZGxlX0J1bmRsZS5j
cHAKQEAgLTAsMCArMSw5OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKwor
I2lmIFdLX0hBVkVfQ19TUEkKKworI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlVGVzdC5oIgorCisj
aW5jbHVkZSAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQ
YWdlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlRmlsZUhhbmRsZVJlZi5oPgorI2luY2x1
ZGUgPFdlYktpdC9XS0J1bmRsZUZyYW1lLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlU2Ny
aXB0V29ybGQuaD4KKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitzdGF0aWMgV0tCdW5k
bGVQYWdlUmVmIGxvYWRlZFBhZ2U7CisKK2NsYXNzIFdLQnVuZGxlRmlsZUhhbmRsZVRlc3QgOiBw
dWJsaWMgSW5qZWN0ZWRCdW5kbGVUZXN0IHsKK3B1YmxpYzoKKyAgICBXS0J1bmRsZUZpbGVIYW5k
bGVUZXN0KGNvbnN0IHN0ZDo6c3RyaW5nJiBpZGVudGlmaWVyKQorICAgICAgICA6IEluamVjdGVk
QnVuZGxlVGVzdChpZGVudGlmaWVyKQorICAgIHsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKFdLQnVuZGxlUmVmIGJ1bmRsZSwgV0tTdHJpbmdS
ZWYgbWVzc2FnZU5hbWUsIFdLVHlwZVJlZiBtZXNzYWdlQm9keSkgb3ZlcnJpZGUKKyAgICB7Cisg
ICAgICAgIGlmICghV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlRl
c3RGaWxlIikpIHsKKyAgICAgICAgICAgIFdLQnVuZGxlUG9zdE1lc3NhZ2UoYnVuZGxlLCBVdGls
Ojp0b1dLKCJGQUlMIikuZ2V0KCksIFV0aWw6OnRvV0soIlJlY2lldmVkIGludmFsaWQgbWVzc2Fn
ZSIpLmdldCgpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlm
ICghbG9hZGVkUGFnZSkgeworICAgICAgICAgICAgV0tCdW5kbGVQb3N0TWVzc2FnZShidW5kbGUs
IFV0aWw6OnRvV0soIkZBSUwiKS5nZXQoKSwgVXRpbDo6dG9XSygiTm8gbG9hZGVkIHBhZ2UiKS5n
ZXQoKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoV0tH
ZXRUeXBlSUQobWVzc2FnZUJvZHkpICE9IFdLU3RyaW5nR2V0VHlwZUlEKCkpIHsKKyAgICAgICAg
ICAgIFdLQnVuZGxlUG9zdE1lc3NhZ2UoYnVuZGxlLCBVdGlsOjp0b1dLKCJGQUlMIikuZ2V0KCks
IFV0aWw6OnRvV0soIk1lc3NhZ2UgYm9keSBoYXMgaW52YWxpZCB0eXBlIikuZ2V0KCkpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgV0tCdW5kbGVGcmFtZVJlZiBt
YWluRnJhbWUgPSBXS0J1bmRsZVBhZ2VHZXRNYWluRnJhbWUobG9hZGVkUGFnZSk7CisgICAgICAg
IFdLQnVuZGxlU2NyaXB0V29ybGRSZWYgd29ybGQgPSBXS0J1bmRsZVNjcmlwdFdvcmxkTm9ybWFs
V29ybGQoKTsKKyAgICAgICAgCisgICAgICAgIEpTR2xvYmFsQ29udGV4dFJlZiBnbG9iYWxDb250
ZXh0ID0gV0tCdW5kbGVGcmFtZUdldEphdmFTY3JpcHRDb250ZXh0Rm9yV29ybGQobWFpbkZyYW1l
LCB3b3JsZCk7CisKKyAgICAgICAgYXV0byBmaWxlSGFuZGxlID0gYWRvcHRXSyhXS0J1bmRsZUZp
bGVIYW5kbGVDcmVhdGVXaXRoUGF0aCgoV0tTdHJpbmdSZWYpbWVzc2FnZUJvZHkpKTsKKyAgICAg
ICAgSlNWYWx1ZVJlZiBqc0ZpbGVIYW5kbGUgPSBXS0J1bmRsZUZyYW1lR2V0SmF2YVNjcmlwdFdy
YXBwZXJGb3JGaWxlRm9yV29ybGQobWFpbkZyYW1lLCBmaWxlSGFuZGxlLmdldCgpLCB3b3JsZCk7
CisKKyAgICAgICAgSlNPYmplY3RSZWYgZ2xvYmFsT2JqZWN0ID0gSlNDb250ZXh0R2V0R2xvYmFs
T2JqZWN0KGdsb2JhbENvbnRleHQpOworCisgICAgICAgIEpTU3RyaW5nUmVmIGpzU3RyaW5nID0g
SlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoInRlc3RGaWxlIik7CisgICAgICAgIEpTVmFs
dWVSZWYgZnVuY3Rpb24gPSBKU09iamVjdEdldFByb3BlcnR5KGdsb2JhbENvbnRleHQsIGdsb2Jh
bE9iamVjdCwganNTdHJpbmcsIG51bGxwdHIpOworICAgICAgICBKU1N0cmluZ1JlbGVhc2UoanNT
dHJpbmcpOworICAgICAgICAKKyAgICAgICAgSlNWYWx1ZVJlZiByZXN1bHQgPSBKU09iamVjdENh
bGxBc0Z1bmN0aW9uKGdsb2JhbENvbnRleHQsIChKU09iamVjdFJlZilmdW5jdGlvbiwgZ2xvYmFs
T2JqZWN0LCAxLCAmanNGaWxlSGFuZGxlLCBudWxscHRyKTsKKworICAgICAgICBpZiAoSlNWYWx1
ZVRvQm9vbGVhbihnbG9iYWxDb250ZXh0LCByZXN1bHQpKQorICAgICAgICAgICAgV0tCdW5kbGVQ
b3N0TWVzc2FnZShidW5kbGUsIFV0aWw6OnRvV0soIlNVQ0NFU1MiKS5nZXQoKSwgbnVsbHB0cik7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIFdLQnVuZGxlUG9zdE1lc3NhZ2UoYnVuZGxlLCBV
dGlsOjp0b1dLKCJGQUlMIikuZ2V0KCksIFV0aWw6OnRvV0soIlNjcmlwdCBmYWlsZWQiKS5nZXQo
KSk7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZVBhZ2UoV0tCdW5kbGVSZWYg
YnVuZGxlLCBXS0J1bmRsZVBhZ2VSZWYgcGFnZSkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIGxv
YWRlZFBhZ2UgPSBwYWdlOworICAgIH0KK307CisKK3N0YXRpYyBJbmplY3RlZEJ1bmRsZVRlc3Q6
OlJlZ2lzdGVyPFdLQnVuZGxlRmlsZUhhbmRsZVRlc3Q+IHJlZ2lzdHJhcigiV0tCdW5kbGVGaWxl
SGFuZGxlVGVzdCIpOworCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL2J1bmRsZS1maWxl
Lmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvYnVuZGxlLWZpbGUuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mNDI2ZWJkYjA3NjAzYjVjYzQ4ZDY0YTU4Njc0ZmMyZjYzZDFkNGExCi0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL2J1bmRs
ZS1maWxlLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0
PgorICAgICAgICBmdW5jdGlvbiB0ZXN0RmlsZShmaWxlKQorICAgICAgICB7CisgICAgICAgICAg
ICBpZiAoIShmaWxlIGluc3RhbmNlb2YgRmlsZSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAg
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICBGaWxlIHRlc3QuCis8L2JvZHk+Cis8L2h0
bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>