<?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>207794</bug_id>
          
          <creation_ts>2020-02-14 14:52:06 -0800</creation_ts>
          <short_desc>Add WebInspector support to WebKit::WebSocketChannel</short_desc>
          <delta_ts>2020-02-17 12:47:14 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>annulen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>d3sk41</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>toyoshim</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>yutak</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1619238</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-02-14 14:52:06 -0800</bug_when>
    <thetext>Add WebInspector support to WebKit::WebSocketChannel</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619240</commentid>
    <comment_count>1</comment_count>
      <attachid>390826</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-02-14 14:55:19 -0800</bug_when>
    <thetext>Created attachment 390826
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619243</commentid>
    <comment_count>2</comment_count>
      <attachid>390827</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-02-14 14:56:55 -0800</bug_when>
    <thetext>Created attachment 390827
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619280</commentid>
    <comment_count>3</comment_count>
      <attachid>390831</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-02-14 16:10:48 -0800</bug_when>
    <thetext>Created attachment 390831
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619328</commentid>
    <comment_count>4</comment_count>
      <attachid>390845</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-02-14 17:56:40 -0800</bug_when>
    <thetext>Created attachment 390845
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619516</commentid>
    <comment_count>5</comment_count>
      <attachid>390845</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-02-16 15:54:09 -0800</bug_when>
    <thetext>Comment on attachment 390845
Patch

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

&gt; Source/WebCore/Modules/websockets/WebSocketChannelInspector.h:50
&gt; +    unsigned long m_progressIdentifier { 0 };

The use of “long” here seems questionable. An unsigned is already 32 bits, just like an unsigned long.

&gt; Source/WebKit/WebProcess/Network/WebSocketChannel.cpp:53
&gt; +    WebSocketFrame frame(opCode, true, false, true, data, length);

Sure seems mysterious, written like this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619726</commentid>
    <comment_count>6</comment_count>
      <attachid>390936</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-02-17 10:41:50 -0800</bug_when>
    <thetext>Created attachment 390936
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619728</commentid>
    <comment_count>7</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-02-17 10:47:34 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #5)
&gt; Comment on attachment 390845 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=390845&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/websockets/WebSocketChannelInspector.h:50
&gt; &gt; +    unsigned long m_progressIdentifier { 0 };

Changed it to unsigned.

&gt; The use of “long” here seems questionable. An unsigned is already 32 bits,
&gt; just like an unsigned long.
&gt; 
&gt; &gt; Source/WebKit/WebProcess/Network/WebSocketChannel.cpp:53
&gt; &gt; +    WebSocketFrame frame(opCode, true, false, true, data, length);
&gt; 
&gt; Sure seems mysterious, written like this.

Reused the other routine that is indeed clearer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619811</commentid>
    <comment_count>9</comment_count>
      <attachid>390936</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-17 12:46:48 -0800</bug_when>
    <thetext>Comment on attachment 390936
Patch for landing

Clearing flags on attachment: 390936

Committed r256762: &lt;https://trac.webkit.org/changeset/256762&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619812</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-17 12:46:49 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619813</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-02-17 12:47:14 -0800</bug_when>
    <thetext>&lt;rdar://problem/59522008&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390826</attachid>
            <date>2020-02-14 14:55:19 -0800</date>
            <delta_ts>2020-02-14 14:56:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207794-20200214145518.patch</filename>
            <type>text/plain</type>
            <size>23432</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2NTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjFiOTU2YmRmMThhMTUw
M2E0YjVlOTk2YTYxYzQ4YThlYzhlMDQ2OC4uM2M3NTAzMmYwNzRiMzM1ZWViZmViMzA5NDc1YWY1
YTdmYjA3NWRmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIwLTAyLTE0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgV2ViSW5zcGVjdG9y
IHN1cHBvcnQgdG8gV2ViS2l0OjpXZWJTb2NrZXRDaGFubmVsCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDc3OTQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSB3cmFwcGVyIGFyb3VuZCBJbnNwZWN0
b3IgZm9yIHVzaW5nIGl0IGluIFdlYkluc3BlY3Rvci4KKyAgICAgICAgVGhpcyBhbGxvd3MgZ2V0
dGluZyBwcmVsaW1pbmFyeSBzdXBwb3J0IG9mIFdlYkluc3BlY3RvciBmb3IgdGhlIG5ldyBXZWJT
b2NrZXQgcGF0aC4KKworICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFu
bmVsSW5zcGVjdG9yLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFu
bmVsSW5zcGVjdG9yOjpXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OldlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OmRpZENyZWF0ZVdlYlNvY2tldCk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjp3aWxsU2VuZFdlYlNvY2tl
dEhhbmRzaGFrZVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbElu
c3BlY3Rvcjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNlKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OmRpZENsb3NlV2ViU29ja2V0KToK
KyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OmRpZFJlY2VpdmVX
ZWJTb2NrZXRGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsSW5zcGVj
dG9yOjpkaWRTZW5kV2ViU29ja2V0RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0
Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEZyYW1lRXJyb3IpOgorICAgICAg
ICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yLmg6IEFkZGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRGcmFtZS5oOgorICAgICAg
ICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKwogMjAyMC0wMi0xNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
ICAgICAgICAgSW50cm9kdWNlIE1lZGlhU3RyZWFtUHJpdmF0ZTo6Zm9yRWFjaFRyYWNrCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IDA4ZDAzNDliODQ2MjBhY2I5NDc5MDgwNWI4OWIzNTE2YjgxZTcwYjIuLjViZWFkZWI2
ODJiNzI4ODdhMDhmMTA2ZGRjNzAwMmQ4MTFhZTZkZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkg
QEAKKzIwMjAtMDItMTQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAg
ICAgIEFkZCBXZWJJbnNwZWN0b3Igc3VwcG9ydCB0byBXZWJLaXQ6OldlYlNvY2tldENoYW5uZWwK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzc5NAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENhbGwgV2Vi
SW5zcGVjdG9yIGhvb2tzIHdoZXJldmVyIG5lZWRlZC4KKyAgICAgICAgV2UgZG8gbm90IGhhdmUg
YWNjZXNzIHRvIGZyYW1lcyBzbyB3ZSBtYWtlIGFzIGlmIGEgbWVzc2FnZSBpcyBwYXJ0IG9mIG9u
ZSBmcmFtZS4KKyAgICAgICAgV2UgZG8gbm90IGhhdmUgeWV0IGEgcmVzcG9uc2Ugc28gcHJvdmlk
ZSBhbiBlbXB0eSBvbmUgYXMgd2VsbC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9X
ZWJTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6
bm90aWZ5U2VuZEZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6Y3Jl
YXRlTWVzc2FnZVF1ZXVlKToKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6V2Vi
U29ja2V0Q2hhbm5lbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldENoYW5uZWw6OmNvbm5l
Y3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRDaGFubmVsOjpzZW5kTWVzc2FnZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlNvY2tldENoYW5uZWw6OmRpc2Nvbm5lY3QpOgorICAgICAgICAo
V2ViS2l0OjpXZWJTb2NrZXRDaGFubmVsOjpkaWRDb25uZWN0KToKKyAgICAgICAgKFdlYktpdDo6
Y3JlYXRlV2ViU29ja2V0RnJhbWVGb3JXZWJJbnNwZWN0b3IpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJTb2NrZXRDaGFubmVsOjpkaWRSZWNlaXZlVGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNv
Y2tldENoYW5uZWw6OmRpZFJlY2VpdmVCaW5hcnlEYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
U29ja2V0Q2hhbm5lbDo6ZGlkQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRDaGFu
bmVsOjpkaWRSZWNlaXZlTWVzc2FnZUVycm9yKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdv
cmsvV2ViU29ja2V0Q2hhbm5lbC5oOgorCiAyMDIwLTAyLTE0ICBZb3Vlbm4gRmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBJbnRyb2R1Y2UgTWVkaWFTdHJlYW1Qcml2YXRlOjpm
b3JFYWNoVHJhY2sKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0
cy9XZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZmZj
OGJmNmU5MmYzYjQ4YmZkNzk2MGQxNjBlZmQ0NmUzZWMwYzA2Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWxJbnNwZWN0
b3IuY3BwCkBAIC0wLDAgKzEsOTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvci5oIgorCisjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRl
ICJQYWdlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV2ViU29ja2V0Q2hhbm5lbEluc3Bl
Y3Rvcjo6V2ViU29ja2V0Q2hhbm5lbEluc3BlY3RvcihEb2N1bWVudCYgZG9jdW1lbnQpCit7Cisg
ICAgaWYgKGF1dG8qIHBhZ2UgPSBkb2N1bWVudC5wYWdlKCkpCisgICAgICAgIG1fcHJvZ3Jlc3NJ
ZGVudGlmaWVyID0gcGFnZS0+cHJvZ3Jlc3MoKS5jcmVhdGVVbmlxdWVJZGVudGlmaWVyKCk7Cit9
CisKK3ZvaWQgV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkQ3JlYXRlV2ViU29ja2V0KERv
Y3VtZW50KiBkb2N1bWVudCwgY29uc3QgVVJMJiB1cmwpCit7CisgICAgaWYgKCFtX3Byb2dyZXNz
SWRlbnRpZmllciB8fCAhZG9jdW1lbnQpCisgICAgICAgIHJldHVybjsKKworICAgIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2ViU29ja2V0KGRvY3VtZW50LCBtX3Byb2dyZXNz
SWRlbnRpZmllciwgdXJsKTsKK30KKwordm9pZCBXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjp3
aWxsU2VuZFdlYlNvY2tldEhhbmRzaGFrZVJlcXVlc3QoRG9jdW1lbnQqIGRvY3VtZW50LCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgaWYgKCFtX3Byb2dyZXNzSWRlbnRp
ZmllciB8fCAhZG9jdW1lbnQpCisgICAgICAgIHJldHVybjsKKworICAgIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6d2lsbFNlbmRXZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0KGRvY3VtZW50LCBt
X3Byb2dyZXNzSWRlbnRpZmllciwgcmVxdWVzdCk7Cit9CisKK3ZvaWQgV2ViU29ja2V0Q2hhbm5l
bEluc3BlY3Rvcjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNlKERvY3VtZW50
KiBkb2N1bWVudCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAgaWYg
KCFtX3Byb2dyZXNzSWRlbnRpZmllciB8fCAhZG9jdW1lbnQpCisgICAgICAgIHJldHVybjsKKwor
ICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEhhbmRzaGFr
ZVJlc3BvbnNlKGRvY3VtZW50LCBtX3Byb2dyZXNzSWRlbnRpZmllciwgcmVzcG9uc2UpOworfQor
Cit2b2lkIFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OmRpZENsb3NlV2ViU29ja2V0KERvY3Vt
ZW50KiBkb2N1bWVudCkKK3sKKyAgICBpZiAoIW1fcHJvZ3Jlc3NJZGVudGlmaWVyIHx8ICFkb2N1
bWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpk
aWRDbG9zZVdlYlNvY2tldChkb2N1bWVudCwgbV9wcm9ncmVzc0lkZW50aWZpZXIpOworfQorCit2
b2lkIFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OmRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZShE
b2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IFdlYlNvY2tldEZyYW1lJiBmcmFtZSkKK3sKKyAgICBp
ZiAoIW1fcHJvZ3Jlc3NJZGVudGlmaWVyIHx8ICFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZlV2ViU29ja2V0RnJhbWUo
ZG9jdW1lbnQsIG1fcHJvZ3Jlc3NJZGVudGlmaWVyLCBmcmFtZSk7Cit9CisKK3ZvaWQgV2ViU29j
a2V0Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkU2VuZFdlYlNvY2tldEZyYW1lKERvY3VtZW50KiBkb2N1
bWVudCwgY29uc3QgV2ViU29ja2V0RnJhbWUmIGZyYW1lKQoreworICAgIGlmICghbV9wcm9ncmVz
c0lkZW50aWZpZXIgfHwgIWRvY3VtZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZFNlbmRXZWJTb2NrZXRGcmFtZShkb2N1bWVudCwgbV9wcm9n
cmVzc0lkZW50aWZpZXIsIGZyYW1lKTsKK30KKwordm9pZCBXZWJTb2NrZXRDaGFubmVsSW5zcGVj
dG9yOjpkaWRSZWNlaXZlV2ViU29ja2V0RnJhbWVFcnJvcihEb2N1bWVudCogZG9jdW1lbnQsIGNv
bnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKQoreworICAgIGlmICghbV9wcm9ncmVzc0lkZW50aWZp
ZXIgfHwgIWRvY3VtZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZUVycm9yKGRvY3VtZW50LCBtX3Byb2dy
ZXNzSWRlbnRpZmllciwgZXJyb3JNZXNzYWdlKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tl
dENoYW5uZWxJbnNwZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9X
ZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmMyNTNhMTdkZWNmYTljYjk4
ZGQyNDFkNzgyYmRlZDMwOTkyNzc0ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yLmgKQEAgLTAsMCAr
MSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIFJl
c291cmNlUmVxdWVzdDsKK2NsYXNzIFJlc291cmNlUmVzcG9uc2U7CitzdHJ1Y3QgV2ViU29ja2V0
RnJhbWU7CisKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3Ig
eworcHVibGljOgorICAgIGV4cGxpY2l0IFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3IoRG9jdW1l
bnQmKTsKKworICAgIHZvaWQgZGlkQ3JlYXRlV2ViU29ja2V0KERvY3VtZW50KiwgY29uc3QgVVJM
Jik7CisgICAgdm9pZCB3aWxsU2VuZFdlYlNvY2tldEhhbmRzaGFrZVJlcXVlc3QoRG9jdW1lbnQq
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJTb2NrZXRI
YW5kc2hha2VSZXNwb25zZShEb2N1bWVudCosIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKKyAg
ICB2b2lkIGRpZENsb3NlV2ViU29ja2V0KERvY3VtZW50Kik7CisgICAgdm9pZCBkaWRSZWNlaXZl
V2ViU29ja2V0RnJhbWUoRG9jdW1lbnQqLCBjb25zdCBXZWJTb2NrZXRGcmFtZSYpOworICAgIHZv
aWQgZGlkU2VuZFdlYlNvY2tldEZyYW1lKERvY3VtZW50KiwgY29uc3QgV2ViU29ja2V0RnJhbWUm
KTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZUVycm9yKERvY3VtZW50KiwgY29u
c3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOworCitwcml2YXRlOgorICAgIHVuc2lnbmVkIGxvbmcg
bV9wcm9ncmVzc0lkZW50aWZpZXIgeyAwIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0
RnJhbWUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRGcmFt
ZS5oCmluZGV4IGE2NDBmMzI0YWYwYzhmYWYyZmEwZWNjOTc2YzNlODdlNzk4ODkwNjUuLmRiMTYw
ZGNmYjFlZTU5NTVhOWQ1N2ZkYzg3N2I0Zjk0NzNhNTczYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRGcmFtZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRGcmFtZS5oCkBAIC01OCw3ICs1OCw3
IEBAIHN0cnVjdCBXZWJTb2NrZXRGcmFtZSB7CiAgICAgc3RhdGljIGJvb2wgbmVlZHNFeHRlbmRl
ZExlbmd0aEZpZWxkKHNpemVfdCBwYXlsb2FkTGVuZ3RoKTsKICAgICBzdGF0aWMgUGFyc2VGcmFt
ZVJlc3VsdCBwYXJzZUZyYW1lKGNoYXIqIGRhdGEsIHNpemVfdCBkYXRhTGVuZ3RoLCBXZWJTb2Nr
ZXRGcmFtZSYsIGNvbnN0IGNoYXIqJiBmcmFtZUVuZCwgU3RyaW5nJiBlcnJvclN0cmluZyk7IC8v
IE1heSBtb2RpZnkgcGFydCBvZiBkYXRhIHRvIHVubWFzayB0aGUgZnJhbWUuCiAKLSAgICBXZWJT
b2NrZXRGcmFtZShPcENvZGUgPSBPcENvZGVJbnZhbGlkLCBib29sIGZpbmFsID0gZmFsc2UsIGJv
b2wgY29tcHJlc3MgPSBmYWxzZSwgYm9vbCBtYXNrZWQgPSBmYWxzZSwgY29uc3QgY2hhciogcGF5
bG9hZCA9IG51bGxwdHIsIHNpemVfdCBwYXlsb2FkTGVuZ3RoID0gMCk7CisgICAgV0VCQ09SRV9F
WFBPUlQgV2ViU29ja2V0RnJhbWUoT3BDb2RlID0gT3BDb2RlSW52YWxpZCwgYm9vbCBmaW5hbCA9
IGZhbHNlLCBib29sIGNvbXByZXNzID0gZmFsc2UsIGJvb2wgbWFza2VkID0gZmFsc2UsIGNvbnN0
IGNoYXIqIHBheWxvYWQgPSBudWxscHRyLCBzaXplX3QgcGF5bG9hZExlbmd0aCA9IDApOwogICAg
IHZvaWQgbWFrZUZyYW1lRGF0YShWZWN0b3I8Y2hhcj4mIGZyYW1lRGF0YSk7CiAKICAgICBPcENv
ZGUgb3BDb2RlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCAxYTEwZGRiOWY3OTA3ZDExNzEzMzc4ZGJjN2Vl
MmYwMzI1ZThkY2VmLi4zMTgxZjViYmM4OTA5ZGNhZWViZTVjYTU0MWQxOTk4NmY3OWI5OGM4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dApAQCAtMzE2LDYgKzMxNiw3IEBAIE1vZHVsZXMvd2Vic29ja2V0cy9UaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKIE1vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuY3BwCiBNb2R1bGVzL3dlYnNvY2tldHMvV2Vi
U29ja2V0LmNwcAogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCitNb2R1
bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvci5jcHAKIE1vZHVsZXMvd2Vi
c29ja2V0cy9XZWJTb2NrZXREZWZsYXRlRnJhbWVyLmNwcAogTW9kdWxlcy93ZWJzb2NrZXRzL1dl
YlNvY2tldERlZmxhdGVyLmNwcAogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVuc2lv
bkRpc3BhdGNoZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggMDZjY2MxZjliOTljMDE0NzViYzEzZDg5OTlhZGNhZjg2OTAx
ZTllMi4uNzA2ZWRmNWVhOGRiODc1MGNhYjUxZmRhZTIwOTM0ZTc3N2RiYjY3NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTAy
Nyw2ICsxMDI3LDcgQEAKIAkJM0ZGODEzQTcxREJBODY0MDAwOUJGMDAxIC8qIFBvaW50ZXJMb2Nr
Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNUNGQzQzNEYxOTI0MDZBOTAwQTBEM0I1IC8qIFBvaW50ZXJMb2NrQ29udHJvbGxlci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxMDc5MDhD
MUZDM0YwMzMwMDYxQjI3QSAvKiBDbGllbnRPcmlnaW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMDc5MDhBMUZDM0U0RjIwMDYxQjI3QSAvKiBDbGll
bnRPcmlnaW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk0MTBFNDQ2MTIzNDM3M0U5MDAwMTczRDQgLyogTGliV2ViUlRDU29ja2V0SWRlbnRpZmll
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwRTQ0
NUYyMzQzNzNBRDAwMDE3M0Q0IC8qIExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0MTEwMEM4MDIzRjc0
NTgzMDAxQkMzM0IgLyogV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDExMDBDN0UyM0Y3Mzk4MjAwMUJDMzNC
IC8qIFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTEwM0FBQzFFMzk3OTEwMDA3NjlGMDMgLyogUmVh
bHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MTEwM0FBODFFMzk3OTBBMDA3NjlGMDMgLyogUmVhbHRpbWVPdXRn
b2luZ0F1ZGlvU291cmNlLmggKi87IH07CiAJCTQxMTAzQUFDMUUzOTc5MTAwMDc2OUYxNCAvKiBS
ZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDExMDNBQTgxRTM5NzkwQTAwNzY5RjE0IC8qIFJlYWx0
aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNvY29hLmggKi87IH07CiAJCTQxMTAzQUFEMUUzOTc5MTAw
MDc2OUYwMyAvKiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMTAzQUE5MUUzOTc5MEEwMDc2OUYwMyAv
KiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuaCAqLzsgfTsKQEAgLTcyMjUsNiArNzIyNiw4
IEBACiAJCTQxMDkzODJDMjM0Nzg1MEUwMDk0MjhCQSAvKiBKU0Fib3J0U2lnbmFsQ3VzdG9tLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQWJvcnRTaWduYWxDdXN0b20uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MTBCN0U3MTEwNDVGQUIwMDBEODIyNEYgLyogSlNNZXNzYWdl
RXZlbnRDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNN
ZXNzYWdlRXZlbnRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTBF
NDQ1RjIzNDM3M0FEMDAwMTczRDQgLyogTGliV2ViUlRDU29ja2V0SWRlbnRpZmllci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLmg7
IHBhdGggPSBsaWJ3ZWJydGMvTGliV2ViUlRDU29ja2V0SWRlbnRpZmllci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0MTEwMEM3RTIzRjczOTgyMDAxQkMzM0IgLyogV2ViU29ja2V0
Q2hhbm5lbEluc3BlY3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJT
b2NrZXRDaGFubmVsSW5zcGVjdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQx
MTAwQzdGMjNGNzNBNTYwMDFCQzMzQiAvKiBXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNvY2tldENoYW5uZWxJbnNw
ZWN0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTEwM0FBNzFFMzk3OTBB
MDA3NjlGMDMgLyogUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMTAzQUE3MUUzOTc5MEEwMDc2OUYxNCAv
KiBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMTAzQUE4MUUzOTc5MEEwMDc2OUYwMyAv
KiBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0yMjQ1NSw2ICsyMjQ1OCw4IEBACiAJCQkJOTdBQUJEMDIxNEZBMDlENTAw
NzQ1N0FFIC8qIFdlYlNvY2tldENoYW5uZWwuY3BwICovLAogCQkJCTk3QUFCRDAzMTRGQTA5RDUw
MDc0NTdBRSAvKiBXZWJTb2NrZXRDaGFubmVsLmggKi8sCiAJCQkJOTdBQUJEMDQxNEZBMDlENTAw
NzQ1N0FFIC8qIFdlYlNvY2tldENoYW5uZWxDbGllbnQuaCAqLywKKwkJCQk0MTEwMEM3RjIzRjcz
QTU2MDAxQkMzM0IgLyogV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvci5jcHAgKi8sCisJCQkJNDEx
MDBDN0UyM0Y3Mzk4MjAwMUJDMzNCIC8qIFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3IuaCAqLywK
IAkJCQk0QTM4QkY0RTE0RkUxQzA5MDA2MTI1MTIgLyogV2ViU29ja2V0RGVmbGF0ZUZyYW1lci5j
cHAgKi8sCiAJCQkJNEEzOEJGNEYxNEZFMUMwOTAwNjEyNTEyIC8qIFdlYlNvY2tldERlZmxhdGVG
cmFtZXIuaCAqLywKIAkJCQk5N0FBQkQwNTE0RkEwOUQ1MDA3NDU3QUUgLyogV2ViU29ja2V0RGVm
bGF0ZXIuY3BwICovLApAQCAtMzIzMDAsNiArMzIzMDUsNyBAQAogCQkJCTUxMEQ0QTM3MTAzMTY1
RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUx
MEQ0QTM4MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTUxQUJBRTFFMTAzQzE5MTMwMDhDNTI2MCAvKiBTb2NrZXRTdHJlYW1I
YW5kbGVJbXBsLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTEwMEM4MDIzRjc0NTgzMDAxQkMzM0Ig
LyogV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODRBODFG
M0UwRkM3REZGMDAwOTU1MzAwIC8qIFNvdXJjZUFscGhhLmggaW4gSGVhZGVycyAqLywKIAkJCQlD
RDNBNDk2MjE3QTlEMDFCMDAyNzRFNDIgLyogU291cmNlQnVmZmVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQlDRDNBNDk2NTE3QTlEMDFCMDAyNzRFNDIgLyogU291cmNlQnVmZmVyTGlzdC5oIGluIEhl
YWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29h
L1dlYlNvY2tldFRhc2tDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29j
b2EvV2ViU29ja2V0VGFza0NvY29hLm1tCmluZGV4IGUxMDQ1MWMxZDQyOTQ3YmUyYzQyYjU3YmNi
ZmQ5ZDFlODI1MDIyODcuLjMxMjc1MjM4MzU4NmQxZDc1MmQ1OGM3YTVkZjRmMjBkYjA0YzQwMzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvV2ViU29ja2V0
VGFza0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvV2Vi
U29ja2V0VGFza0NvY29hLm1tCkBAIC01OCwxMSArNTgsOCBAQCB2b2lkIFdlYlNvY2tldFRhc2s6
OnJlYWROZXh0TWVzc2FnZSgpCiAgICAgICAgICAgICBkaWRDbG9zZShbZXJyb3IgY29kZV0sIFtl
cnJvciBsb2NhbGl6ZWREZXNjcmlwdGlvbl0pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9Ci0gICAgICAgIGlmICghbWVzc2FnZSkgewotICAgICAgICAgICAgLy8gRklYTUU6IHRoaXMg
aXMgYSB3b3JrYXJvdW5kIGFuZCB3ZSBzaG91bGQgcHJvYmFibHkgbmV2ZXIgZ2V0IHRoZXJlLgot
ICAgICAgICAgICAgZGlkQ2xvc2UoMTAwMCwgIlVua25vd24gZXJyb3IiKTsKLSAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgfQorCisgICAgICAgIEFTU0VSVChtZXNzYWdlKTsKICAgICAgICAg
aWYgKG1lc3NhZ2UudHlwZSA9PSBOU1VSTFNlc3Npb25XZWJTb2NrZXRNZXNzYWdlVHlwZVN0cmlu
ZykKICAgICAgICAgICAgIG1fY2hhbm5lbC5kaWRSZWNlaXZlVGV4dChtZXNzYWdlLnN0cmluZyk7
CiAgICAgICAgIGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggNmEzZjM1MzE1MzAxNDE1ZDQyYTY1OGY1NmU1
NzY4ZTk5OGVmMDNhYS4uOWY1ZDNhMzc4ZjIzNWUwZWNlYjE0NTcwNWNmNjAyODgwMjZiYTdlZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hh
bm5lbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0
Q2hhbm5lbC5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9CbG9iLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2ViU29ja2V0Q2hh
bm5lbC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2ViU29ja2V0Q2hhbm5lbENsaWVudC5oPgogI2lu
Y2x1ZGUgPHd0Zi9DaGVja2VkQXJpdGhtZXRpYy5oPgpAQCAtNDcsMTIgKzQ4LDIwIEBAIFJlZjxX
ZWJTb2NrZXRDaGFubmVsPiBXZWJTb2NrZXRDaGFubmVsOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3Vt
ZW50LCBXZWJTb2NrZXRDaGFuCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViU29ja2V0Q2hh
bm5lbChkb2N1bWVudCwgY2xpZW50KSk7CiB9CiAKK3ZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6bm90
aWZ5U2VuZEZyYW1lKFdlYlNvY2tldEZyYW1lOjpPcENvZGUgb3BDb2RlLCBjb25zdCBjaGFyKiBk
YXRhLCBzaXplX3QgbGVuZ3RoKQoreworICAgIFdlYlNvY2tldEZyYW1lIGZyYW1lKG9wQ29kZSwg
dHJ1ZSwgZmFsc2UsIHRydWUsIGRhdGEsIGxlbmd0aCk7CisgICAgbV9pbnNwZWN0b3IuZGlkU2Vu
ZFdlYlNvY2tldEZyYW1lKG1fZG9jdW1lbnQuZ2V0KCksIGZyYW1lKTsKK30KKwogTmV0d29ya1Nl
bmRRdWV1ZSBXZWJTb2NrZXRDaGFubmVsOjpjcmVhdGVNZXNzYWdlUXVldWUoRG9jdW1lbnQmIGRv
Y3VtZW50LCBXZWJTb2NrZXRDaGFubmVsJiBjaGFubmVsKQogewogICAgIHJldHVybiB7IGRvY3Vt
ZW50LCBbJmNoYW5uZWxdKGF1dG8mIHN0cmluZykgewogICAgICAgICBhdXRvIGJ5dGVMZW5ndGgg
PSBzdHJpbmcuc2l6ZUluQnl0ZXMoKTsKKyAgICAgICAgY2hhbm5lbC5ub3RpZnlTZW5kRnJhbWUo
V2ViU29ja2V0RnJhbWU6Ok9wQ29kZTo6T3BDb2RlVGV4dCwgc3RyaW5nLnV0ZjgoKS5kYXRhKCks
IGJ5dGVMZW5ndGgpOwogICAgICAgICBjaGFubmVsLnNlbmRNZXNzYWdlKE1lc3NhZ2VzOjpOZXR3
b3JrU29ja2V0Q2hhbm5lbDo6U2VuZFN0cmluZyB7IHN0cmluZyB9LCBieXRlTGVuZ3RoKTsKICAg
ICB9LCBbJmNoYW5uZWxdKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBieXRlTGVuZ3RoKSB7Cisg
ICAgICAgIGNoYW5uZWwubm90aWZ5U2VuZEZyYW1lKFdlYlNvY2tldEZyYW1lOjpPcENvZGU6Ok9w
Q29kZUJpbmFyeSwgZGF0YSwgYnl0ZUxlbmd0aCk7CiAgICAgICAgIGNoYW5uZWwuc2VuZE1lc3Nh
Z2UoTWVzc2FnZXM6Ok5ldHdvcmtTb2NrZXRDaGFubmVsOjpTZW5kRGF0YSB7IElQQzo6RGF0YVJl
ZmVyZW5jZSB7IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KGRhdGEpLCBieXRlTGVu
Z3RoIH0gfSwgYnl0ZUxlbmd0aCk7CiAgICAgfSwgWyZjaGFubmVsXShhdXRvIGVycm9yQ29kZSkg
ewogICAgICAgICBjaGFubmVsLmZhaWwobWFrZVN0cmluZygiRmFpbGVkIHRvIGxvYWQgQmxvYjog
ZXJyb3IgY29kZSA9ICIsIGVycm9yQ29kZSkpOwpAQCAtNjUsNiArNzQsNyBAQCBXZWJTb2NrZXRD
aGFubmVsOjpXZWJTb2NrZXRDaGFubmVsKERvY3VtZW50JiBkb2N1bWVudCwgV2ViU29ja2V0Q2hh
bm5lbENsaWVudCYgYwogICAgICwgIG1faWRlbnRpZmllcihXZWJTb2NrZXRJZGVudGlmaWVyOjpn
ZW5lcmF0ZSgpKQogICAgICwgbV9jbGllbnQobWFrZVdlYWtQdHIoY2xpZW50KSkKICAgICAsIG1f
bWVzc2FnZVF1ZXVlKGNyZWF0ZU1lc3NhZ2VRdWV1ZShkb2N1bWVudCwgKnRoaXMpKQorICAgICwg
bV9pbnNwZWN0b3IoZG9jdW1lbnQpCiB7CiB9CiAKQEAgLTEwNCw3ICsxMTQsMTIgQEAgV2ViU29j
a2V0Q2hhbm5lbDo6Q29ubmVjdFN0YXR1cyBXZWJTb2NrZXRDaGFubmVsOjpjb25uZWN0KGNvbnN0
IFVSTCYgdXJsLCBjb25zdAogICAgIGlmIChyZXF1ZXN0LT51cmwoKSAhPSB1cmwgJiYgbV9jbGll
bnQpCiAgICAgICAgIG1fY2xpZW50LT5kaWRVcGdyYWRlVVJMKCk7CiAKKyAgICBtX2luc3BlY3Rv
ci5kaWRDcmVhdGVXZWJTb2NrZXQobV9kb2N1bWVudC5nZXQoKSwgdXJsKTsKKyAgICAvLyBGSVhN
RTogR2V0IHRoZSByZWFsIG9uZSBmcm9tIG5ldHdvcmtpbmcgcHJvY2VzcworICAgIG1faW5zcGVj
dG9yLndpbGxTZW5kV2ViU29ja2V0SGFuZHNoYWtlUmVxdWVzdChtX2RvY3VtZW50LmdldCgpLCAq
cmVxdWVzdCk7CisKICAgICBNZXNzYWdlU2VuZGVyOjpzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6Q3JlYXRlU29ja2V0Q2hhbm5lbCB7ICpyZXF1ZXN0LCBwcm90
b2NvbCwgbV9pZGVudGlmaWVyIH0pOworCiAgICAgcmV0dXJuIENvbm5lY3RTdGF0dXM6Ok9LOwog
fQogCkBAIC0xNDIsNiArMTU3LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9pZCBXZWJTb2Nr
ZXRDaGFubmVsOjpzZW5kTWVzc2FnZShUJiYgbWVzc2FnZSwgc2l6ZV90IGJ5dGUKICAgICBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+IGNvbXBsZXRpb25IYW5kbGVyID0gW3RoaXMsIHByb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgYnl0ZUxlbmd0aF0gewogICAgICAgICBkZWNyZWFzZUJ1
ZmZlcmVkQW1vdW50KGJ5dGVMZW5ndGgpOwogICAgIH07CisKICAgICBzZW5kV2l0aEFzeW5jUmVw
bHkoV1RGTW92ZShtZXNzYWdlKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCkBA
IC0yMDksNiArMjI1LDkgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpkaXNjb25uZWN0KCkKICAg
ICBtX3BlbmRpbmdUYXNrcy5jbGVhcigpOwogICAgIG1fbWVzc2FnZVF1ZXVlLmNsZWFyKCk7CiAK
KworICAgIG1faW5zcGVjdG9yLmRpZENsb3NlV2ViU29ja2V0KG1fZG9jdW1lbnQuZ2V0KCkpOwor
CiAgICAgTWVzc2FnZVNlbmRlcjo6c2VuZChNZXNzYWdlczo6TmV0d29ya1NvY2tldENoYW5uZWw6
OkNsb3NlIHsgMCwgeyB9IH0pOwogfQogCkBAIC0yMjcsMTEgKzI0NiwzMiBAQCB2b2lkIFdlYlNv
Y2tldENoYW5uZWw6OmRpZENvbm5lY3QoU3RyaW5nJiYgc3VicHJvdG9jb2wsIFN0cmluZyYmIGV4
dGVuc2lvbnMpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICAvLyBGSVhNRTogR2V0IHRo
ZSByZWFsIG9uZSBmcm9tIG5ldHdvcmtpbmcgcHJvY2VzcworICAgIG1faW5zcGVjdG9yLmRpZFJl
Y2VpdmVXZWJTb2NrZXRIYW5kc2hha2VSZXNwb25zZShtX2RvY3VtZW50LmdldCgpLCB7IH0pOwor
CiAgICAgbV9zdWJwcm90b2NvbCA9IFdURk1vdmUoc3VicHJvdG9jb2wpOwogICAgIG1fZXh0ZW5z
aW9ucyA9IFdURk1vdmUoZXh0ZW5zaW9ucyk7CiAgICAgbV9jbGllbnQtPmRpZENvbm5lY3QoKTsK
IH0KIAorc3RhdGljIGlubGluZSBXZWJTb2NrZXRGcmFtZSBjcmVhdGVXZWJTb2NrZXRGcmFtZUZv
cldlYkluc3BlY3Rvcihjb25zdCBjaGFyKiBkYXRhLCBzaXplX3QgbGVuZ3RoLCBXZWJTb2NrZXRG
cmFtZTo6T3BDb2RlIG9wQ29kZSkKK3sKKyAgICAvLyBUaGlzIGlzIGFuIGFwcHJveGltYXRpb24g
c2luY2UgZnJhbWVzIGNhbiBiZSBtZXJnZWQgb24gYSBzaW5nbGUgbWVzc2FnZS4KKyAgICBXZWJT
b2NrZXRGcmFtZSBmcmFtZTsKKyAgICBmcmFtZS5vcENvZGUgPSBvcENvZGU7CisgICAgZnJhbWUu
bWFza2VkID0gZmFsc2U7CisgICAgZnJhbWUucGF5bG9hZCA9IGRhdGE7CisgICAgZnJhbWUucGF5
bG9hZExlbmd0aCA9IGxlbmd0aDsKKworICAgIC8vIFdlYkluc3BlY3RvciBkb2VzIG5vdCB1c2Ug
dGhlbS4KKyAgICBmcmFtZS5maW5hbCA9IGZhbHNlOworICAgIGZyYW1lLmNvbXByZXNzID0gZmFs
c2U7CisgICAgZnJhbWUucmVzZXJ2ZWQyID0gZmFsc2U7CisgICAgZnJhbWUucmVzZXJ2ZWQzID0g
ZmFsc2U7CisKKyAgICByZXR1cm4gZnJhbWU7Cit9CisKIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6
ZGlkUmVjZWl2ZVRleHQoU3RyaW5nJiYgbWVzc2FnZSkKIHsKICAgICBpZiAobV9pc0Nsb3Npbmcp
CkBAIC0yNDcsNiArMjg3LDggQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpkaWRSZWNlaXZlVGV4
dChTdHJpbmcmJiBtZXNzYWdlKQogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgbV9pbnNw
ZWN0b3IuZGlkUmVjZWl2ZVdlYlNvY2tldEZyYW1lKG1fZG9jdW1lbnQuZ2V0KCksIGNyZWF0ZVdl
YlNvY2tldEZyYW1lRm9yV2ViSW5zcGVjdG9yKG1lc3NhZ2UudXRmOCgpLmRhdGEoKSwgbWVzc2Fn
ZS51dGY4KCkubGVuZ3RoKCksIFdlYlNvY2tldEZyYW1lOjpPcENvZGU6Ok9wQ29kZVRleHQpKTsK
KwogICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZShtZXNzYWdlKTsKIH0KIApAQCAtMjY1
LDYgKzMwNyw5IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZGlkUmVjZWl2ZUJpbmFyeURhdGEo
SVBDOjpEYXRhUmVmZXJlbmNlJiYgZGF0YSkKICAgICAgICAgfSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CisKKyAgICBtX2luc3BlY3Rvci5kaWRSZWNlaXZlV2ViU29ja2V0RnJhbWUobV9kb2N1
bWVudC5nZXQoKSwgY3JlYXRlV2ViU29ja2V0RnJhbWVGb3JXZWJJbnNwZWN0b3IocmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBjaGFyKj4oZGF0YS5kYXRhKCkpLCBkYXRhLnNpemUoKSwgV2ViU29ja2V0
RnJhbWU6Ok9wQ29kZTo6T3BDb2RlQmluYXJ5KSk7CisKICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2
ZUJpbmFyeURhdGEoZGF0YS52ZWN0b3IoKSk7CiB9CiAKQEAgLTI4MCw2ICszMjUsOCBAQCB2b2lk
IFdlYlNvY2tldENoYW5uZWw6OmRpZENsb3NlKHVuc2lnbmVkIHNob3J0IGNvZGUsIFN0cmluZyYm
IHJlYXNvbikKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIG1faW5zcGVjdG9yLmRpZENs
b3NlV2ViU29ja2V0KG1fZG9jdW1lbnQuZ2V0KCkpOworCiAgICAgaWYgKGNvZGUgPT0gV2ViQ29y
ZTo6V2ViU29ja2V0Q2hhbm5lbDo6Q2xvc2VFdmVudENvZGVOb3JtYWxDbG9zdXJlKQogICAgICAg
ICBtX2NsaWVudC0+ZGlkU3RhcnRDbG9zaW5nSGFuZHNoYWtlKCk7CiAKQEAgLTI5OCw3ICszNDUs
OCBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoU3RyaW5n
JiYgZXJyb3JNZXNzYWdlKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gRklYTUU6
IGRvIHNvbWV0aGluZyB3aXRoIGVycm9yTWVzc2FnZS4KKyAgICBtX2luc3BlY3Rvci5kaWRSZWNl
aXZlV2ViU29ja2V0RnJhbWVFcnJvcihtX2RvY3VtZW50LmdldCgpLCBlcnJvck1lc3NhZ2UpOwor
CiAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5oCmluZGV4
IDMwNjhjNTI4MGIzMzNhNDFhODhlNzBmYTI0NDRkYTM0ZTdiMmMzYzYuLjAxNDUxYjA3MzdjMTkz
NTNjY2M1ODRiMWYyOTE2OTJjNTlkOWY0MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmgKQEAgLTMwLDYgKzMwLDggQEAKICNp
bmNsdWRlICJXZWJTb2NrZXRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3Jr
U2VuZFF1ZXVlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvci5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvV2ViU29ja2V0RnJhbWUuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5o
PgogCiBuYW1lc3BhY2UgSVBDIHsKQEAgLTc1LDYgKzc3LDggQEAgcHJpdmF0ZToKICAgICB2b2lk
IHJlZlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsKCkgZmluYWwgeyByZWYoKTsgfQogICAgIHZv
aWQgZGVyZWZUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbCgpIGZpbmFsIHsgZGVyZWYoKTsgfQog
CisgICAgdm9pZCBub3RpZnlTZW5kRnJhbWUoV2ViQ29yZTo6V2ViU29ja2V0RnJhbWU6Ok9wQ29k
ZSwgY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IGxlbmd0aCk7CisKICAgICAvLyBNZXNzYWdlIHJl
Y2VpdmVycwogICAgIHZvaWQgZGlkQ29ubmVjdChTdHJpbmcmJiBzdWJwcm90b2NvbCwgU3RyaW5n
JiYgZXh0ZW5zaW9ucyk7CiAgICAgdm9pZCBkaWRSZWNlaXZlVGV4dChTdHJpbmcmJik7CkBAIC0x
MDEsNiArMTA1LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNTdXNwZW5kZWQgeyBmYWxzZSB9
OwogICAgIERlcXVlPEZ1bmN0aW9uPHZvaWQoKT4+IG1fcGVuZGluZ1Rhc2tzOwogICAgIFdlYkNv
cmU6Ok5ldHdvcmtTZW5kUXVldWUgbV9tZXNzYWdlUXVldWU7CisgICAgV2ViQ29yZTo6V2ViU29j
a2V0Q2hhbm5lbEluc3BlY3RvciBtX2luc3BlY3RvcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390827</attachid>
            <date>2020-02-14 14:56:55 -0800</date>
            <delta_ts>2020-02-14 16:10:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207794-20200214145654.patch</filename>
            <type>text/plain</type>
            <size>22583</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2NTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjFiOTU2YmRmMThhMTUw
M2E0YjVlOTk2YTYxYzQ4YThlYzhlMDQ2OC4uM2M3NTAzMmYwNzRiMzM1ZWViZmViMzA5NDc1YWY1
YTdmYjA3NWRmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIwLTAyLTE0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgV2ViSW5zcGVjdG9y
IHN1cHBvcnQgdG8gV2ViS2l0OjpXZWJTb2NrZXRDaGFubmVsCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDc3OTQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSB3cmFwcGVyIGFyb3VuZCBJbnNwZWN0
b3IgZm9yIHVzaW5nIGl0IGluIFdlYkluc3BlY3Rvci4KKyAgICAgICAgVGhpcyBhbGxvd3MgZ2V0
dGluZyBwcmVsaW1pbmFyeSBzdXBwb3J0IG9mIFdlYkluc3BlY3RvciBmb3IgdGhlIG5ldyBXZWJT
b2NrZXQgcGF0aC4KKworICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFu
bmVsSW5zcGVjdG9yLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFu
bmVsSW5zcGVjdG9yOjpXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OldlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OmRpZENyZWF0ZVdlYlNvY2tldCk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjp3aWxsU2VuZFdlYlNvY2tl
dEhhbmRzaGFrZVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbElu
c3BlY3Rvcjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNlKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OmRpZENsb3NlV2ViU29ja2V0KToK
KyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OmRpZFJlY2VpdmVX
ZWJTb2NrZXRGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsSW5zcGVj
dG9yOjpkaWRTZW5kV2ViU29ja2V0RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0
Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEZyYW1lRXJyb3IpOgorICAgICAg
ICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yLmg6IEFkZGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRGcmFtZS5oOgorICAgICAg
ICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKwogMjAyMC0wMi0xNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
ICAgICAgICAgSW50cm9kdWNlIE1lZGlhU3RyZWFtUHJpdmF0ZTo6Zm9yRWFjaFRyYWNrCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IDA4ZDAzNDliODQ2MjBhY2I5NDc5MDgwNWI4OWIzNTE2YjgxZTcwYjIuLjViZWFkZWI2
ODJiNzI4ODdhMDhmMTA2ZGRjNzAwMmQ4MTFhZTZkZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkg
QEAKKzIwMjAtMDItMTQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAg
ICAgIEFkZCBXZWJJbnNwZWN0b3Igc3VwcG9ydCB0byBXZWJLaXQ6OldlYlNvY2tldENoYW5uZWwK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzc5NAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENhbGwgV2Vi
SW5zcGVjdG9yIGhvb2tzIHdoZXJldmVyIG5lZWRlZC4KKyAgICAgICAgV2UgZG8gbm90IGhhdmUg
YWNjZXNzIHRvIGZyYW1lcyBzbyB3ZSBtYWtlIGFzIGlmIGEgbWVzc2FnZSBpcyBwYXJ0IG9mIG9u
ZSBmcmFtZS4KKyAgICAgICAgV2UgZG8gbm90IGhhdmUgeWV0IGEgcmVzcG9uc2Ugc28gcHJvdmlk
ZSBhbiBlbXB0eSBvbmUgYXMgd2VsbC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9X
ZWJTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6
bm90aWZ5U2VuZEZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6Y3Jl
YXRlTWVzc2FnZVF1ZXVlKToKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6V2Vi
U29ja2V0Q2hhbm5lbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldENoYW5uZWw6OmNvbm5l
Y3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRDaGFubmVsOjpzZW5kTWVzc2FnZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlNvY2tldENoYW5uZWw6OmRpc2Nvbm5lY3QpOgorICAgICAgICAo
V2ViS2l0OjpXZWJTb2NrZXRDaGFubmVsOjpkaWRDb25uZWN0KToKKyAgICAgICAgKFdlYktpdDo6
Y3JlYXRlV2ViU29ja2V0RnJhbWVGb3JXZWJJbnNwZWN0b3IpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJTb2NrZXRDaGFubmVsOjpkaWRSZWNlaXZlVGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNv
Y2tldENoYW5uZWw6OmRpZFJlY2VpdmVCaW5hcnlEYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
U29ja2V0Q2hhbm5lbDo6ZGlkQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRDaGFu
bmVsOjpkaWRSZWNlaXZlTWVzc2FnZUVycm9yKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdv
cmsvV2ViU29ja2V0Q2hhbm5lbC5oOgorCiAyMDIwLTAyLTE0ICBZb3Vlbm4gRmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBJbnRyb2R1Y2UgTWVkaWFTdHJlYW1Qcml2YXRlOjpm
b3JFYWNoVHJhY2sKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0
cy9XZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZmZj
OGJmNmU5MmYzYjQ4YmZkNzk2MGQxNjBlZmQ0NmUzZWMwYzA2Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWxJbnNwZWN0
b3IuY3BwCkBAIC0wLDAgKzEsOTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvci5oIgorCisjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRl
ICJQYWdlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV2ViU29ja2V0Q2hhbm5lbEluc3Bl
Y3Rvcjo6V2ViU29ja2V0Q2hhbm5lbEluc3BlY3RvcihEb2N1bWVudCYgZG9jdW1lbnQpCit7Cisg
ICAgaWYgKGF1dG8qIHBhZ2UgPSBkb2N1bWVudC5wYWdlKCkpCisgICAgICAgIG1fcHJvZ3Jlc3NJ
ZGVudGlmaWVyID0gcGFnZS0+cHJvZ3Jlc3MoKS5jcmVhdGVVbmlxdWVJZGVudGlmaWVyKCk7Cit9
CisKK3ZvaWQgV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkQ3JlYXRlV2ViU29ja2V0KERv
Y3VtZW50KiBkb2N1bWVudCwgY29uc3QgVVJMJiB1cmwpCit7CisgICAgaWYgKCFtX3Byb2dyZXNz
SWRlbnRpZmllciB8fCAhZG9jdW1lbnQpCisgICAgICAgIHJldHVybjsKKworICAgIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2ViU29ja2V0KGRvY3VtZW50LCBtX3Byb2dyZXNz
SWRlbnRpZmllciwgdXJsKTsKK30KKwordm9pZCBXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjp3
aWxsU2VuZFdlYlNvY2tldEhhbmRzaGFrZVJlcXVlc3QoRG9jdW1lbnQqIGRvY3VtZW50LCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgaWYgKCFtX3Byb2dyZXNzSWRlbnRp
ZmllciB8fCAhZG9jdW1lbnQpCisgICAgICAgIHJldHVybjsKKworICAgIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6d2lsbFNlbmRXZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0KGRvY3VtZW50LCBt
X3Byb2dyZXNzSWRlbnRpZmllciwgcmVxdWVzdCk7Cit9CisKK3ZvaWQgV2ViU29ja2V0Q2hhbm5l
bEluc3BlY3Rvcjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNlKERvY3VtZW50
KiBkb2N1bWVudCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAgaWYg
KCFtX3Byb2dyZXNzSWRlbnRpZmllciB8fCAhZG9jdW1lbnQpCisgICAgICAgIHJldHVybjsKKwor
ICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEhhbmRzaGFr
ZVJlc3BvbnNlKGRvY3VtZW50LCBtX3Byb2dyZXNzSWRlbnRpZmllciwgcmVzcG9uc2UpOworfQor
Cit2b2lkIFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OmRpZENsb3NlV2ViU29ja2V0KERvY3Vt
ZW50KiBkb2N1bWVudCkKK3sKKyAgICBpZiAoIW1fcHJvZ3Jlc3NJZGVudGlmaWVyIHx8ICFkb2N1
bWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpk
aWRDbG9zZVdlYlNvY2tldChkb2N1bWVudCwgbV9wcm9ncmVzc0lkZW50aWZpZXIpOworfQorCit2
b2lkIFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OmRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZShE
b2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IFdlYlNvY2tldEZyYW1lJiBmcmFtZSkKK3sKKyAgICBp
ZiAoIW1fcHJvZ3Jlc3NJZGVudGlmaWVyIHx8ICFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZlV2ViU29ja2V0RnJhbWUo
ZG9jdW1lbnQsIG1fcHJvZ3Jlc3NJZGVudGlmaWVyLCBmcmFtZSk7Cit9CisKK3ZvaWQgV2ViU29j
a2V0Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkU2VuZFdlYlNvY2tldEZyYW1lKERvY3VtZW50KiBkb2N1
bWVudCwgY29uc3QgV2ViU29ja2V0RnJhbWUmIGZyYW1lKQoreworICAgIGlmICghbV9wcm9ncmVz
c0lkZW50aWZpZXIgfHwgIWRvY3VtZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZFNlbmRXZWJTb2NrZXRGcmFtZShkb2N1bWVudCwgbV9wcm9n
cmVzc0lkZW50aWZpZXIsIGZyYW1lKTsKK30KKwordm9pZCBXZWJTb2NrZXRDaGFubmVsSW5zcGVj
dG9yOjpkaWRSZWNlaXZlV2ViU29ja2V0RnJhbWVFcnJvcihEb2N1bWVudCogZG9jdW1lbnQsIGNv
bnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKQoreworICAgIGlmICghbV9wcm9ncmVzc0lkZW50aWZp
ZXIgfHwgIWRvY3VtZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZUVycm9yKGRvY3VtZW50LCBtX3Byb2dy
ZXNzSWRlbnRpZmllciwgZXJyb3JNZXNzYWdlKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tl
dENoYW5uZWxJbnNwZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9X
ZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmMyNTNhMTdkZWNmYTljYjk4
ZGQyNDFkNzgyYmRlZDMwOTkyNzc0ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yLmgKQEAgLTAsMCAr
MSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIFJl
c291cmNlUmVxdWVzdDsKK2NsYXNzIFJlc291cmNlUmVzcG9uc2U7CitzdHJ1Y3QgV2ViU29ja2V0
RnJhbWU7CisKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3Ig
eworcHVibGljOgorICAgIGV4cGxpY2l0IFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3IoRG9jdW1l
bnQmKTsKKworICAgIHZvaWQgZGlkQ3JlYXRlV2ViU29ja2V0KERvY3VtZW50KiwgY29uc3QgVVJM
Jik7CisgICAgdm9pZCB3aWxsU2VuZFdlYlNvY2tldEhhbmRzaGFrZVJlcXVlc3QoRG9jdW1lbnQq
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJTb2NrZXRI
YW5kc2hha2VSZXNwb25zZShEb2N1bWVudCosIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKKyAg
ICB2b2lkIGRpZENsb3NlV2ViU29ja2V0KERvY3VtZW50Kik7CisgICAgdm9pZCBkaWRSZWNlaXZl
V2ViU29ja2V0RnJhbWUoRG9jdW1lbnQqLCBjb25zdCBXZWJTb2NrZXRGcmFtZSYpOworICAgIHZv
aWQgZGlkU2VuZFdlYlNvY2tldEZyYW1lKERvY3VtZW50KiwgY29uc3QgV2ViU29ja2V0RnJhbWUm
KTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZUVycm9yKERvY3VtZW50KiwgY29u
c3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOworCitwcml2YXRlOgorICAgIHVuc2lnbmVkIGxvbmcg
bV9wcm9ncmVzc0lkZW50aWZpZXIgeyAwIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0
RnJhbWUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRGcmFt
ZS5oCmluZGV4IGE2NDBmMzI0YWYwYzhmYWYyZmEwZWNjOTc2YzNlODdlNzk4ODkwNjUuLmRiMTYw
ZGNmYjFlZTU5NTVhOWQ1N2ZkYzg3N2I0Zjk0NzNhNTczYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRGcmFtZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRGcmFtZS5oCkBAIC01OCw3ICs1OCw3
IEBAIHN0cnVjdCBXZWJTb2NrZXRGcmFtZSB7CiAgICAgc3RhdGljIGJvb2wgbmVlZHNFeHRlbmRl
ZExlbmd0aEZpZWxkKHNpemVfdCBwYXlsb2FkTGVuZ3RoKTsKICAgICBzdGF0aWMgUGFyc2VGcmFt
ZVJlc3VsdCBwYXJzZUZyYW1lKGNoYXIqIGRhdGEsIHNpemVfdCBkYXRhTGVuZ3RoLCBXZWJTb2Nr
ZXRGcmFtZSYsIGNvbnN0IGNoYXIqJiBmcmFtZUVuZCwgU3RyaW5nJiBlcnJvclN0cmluZyk7IC8v
IE1heSBtb2RpZnkgcGFydCBvZiBkYXRhIHRvIHVubWFzayB0aGUgZnJhbWUuCiAKLSAgICBXZWJT
b2NrZXRGcmFtZShPcENvZGUgPSBPcENvZGVJbnZhbGlkLCBib29sIGZpbmFsID0gZmFsc2UsIGJv
b2wgY29tcHJlc3MgPSBmYWxzZSwgYm9vbCBtYXNrZWQgPSBmYWxzZSwgY29uc3QgY2hhciogcGF5
bG9hZCA9IG51bGxwdHIsIHNpemVfdCBwYXlsb2FkTGVuZ3RoID0gMCk7CisgICAgV0VCQ09SRV9F
WFBPUlQgV2ViU29ja2V0RnJhbWUoT3BDb2RlID0gT3BDb2RlSW52YWxpZCwgYm9vbCBmaW5hbCA9
IGZhbHNlLCBib29sIGNvbXByZXNzID0gZmFsc2UsIGJvb2wgbWFza2VkID0gZmFsc2UsIGNvbnN0
IGNoYXIqIHBheWxvYWQgPSBudWxscHRyLCBzaXplX3QgcGF5bG9hZExlbmd0aCA9IDApOwogICAg
IHZvaWQgbWFrZUZyYW1lRGF0YShWZWN0b3I8Y2hhcj4mIGZyYW1lRGF0YSk7CiAKICAgICBPcENv
ZGUgb3BDb2RlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCAxYTEwZGRiOWY3OTA3ZDExNzEzMzc4ZGJjN2Vl
MmYwMzI1ZThkY2VmLi4zMTgxZjViYmM4OTA5ZGNhZWViZTVjYTU0MWQxOTk4NmY3OWI5OGM4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dApAQCAtMzE2LDYgKzMxNiw3IEBAIE1vZHVsZXMvd2Vic29ja2V0cy9UaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKIE1vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuY3BwCiBNb2R1bGVzL3dlYnNvY2tldHMvV2Vi
U29ja2V0LmNwcAogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCitNb2R1
bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvci5jcHAKIE1vZHVsZXMvd2Vi
c29ja2V0cy9XZWJTb2NrZXREZWZsYXRlRnJhbWVyLmNwcAogTW9kdWxlcy93ZWJzb2NrZXRzL1dl
YlNvY2tldERlZmxhdGVyLmNwcAogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVuc2lv
bkRpc3BhdGNoZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggMDZjY2MxZjliOTljMDE0NzViYzEzZDg5OTlhZGNhZjg2OTAx
ZTllMi4uZWViMDA5ZmUyNTEyZDFhNWNhZjFiOTFlNDJkMDljZWZiMjBkYzViNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTAy
Nyw2ICsxMDI3LDcgQEAKIAkJM0ZGODEzQTcxREJBODY0MDAwOUJGMDAxIC8qIFBvaW50ZXJMb2Nr
Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNUNGQzQzNEYxOTI0MDZBOTAwQTBEM0I1IC8qIFBvaW50ZXJMb2NrQ29udHJvbGxlci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxMDc5MDhD
MUZDM0YwMzMwMDYxQjI3QSAvKiBDbGllbnRPcmlnaW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMDc5MDhBMUZDM0U0RjIwMDYxQjI3QSAvKiBDbGll
bnRPcmlnaW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk0MTBFNDQ2MTIzNDM3M0U5MDAwMTczRDQgLyogTGliV2ViUlRDU29ja2V0SWRlbnRpZmll
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwRTQ0
NUYyMzQzNzNBRDAwMDE3M0Q0IC8qIExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0MTEwMEM4MDIzRjc0
NTgzMDAxQkMzM0IgLyogV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDExMDBDN0UyM0Y3Mzk4MjAwMUJDMzNC
IC8qIFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTEwM0FBQzFFMzk3OTEwMDA3NjlGMDMgLyogUmVh
bHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MTEwM0FBODFFMzk3OTBBMDA3NjlGMDMgLyogUmVhbHRpbWVPdXRn
b2luZ0F1ZGlvU291cmNlLmggKi87IH07CiAJCTQxMTAzQUFDMUUzOTc5MTAwMDc2OUYxNCAvKiBS
ZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDExMDNBQTgxRTM5NzkwQTAwNzY5RjE0IC8qIFJlYWx0
aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNvY29hLmggKi87IH07CiAJCTQxMTAzQUFEMUUzOTc5MTAw
MDc2OUYwMyAvKiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMTAzQUE5MUUzOTc5MEEwMDc2OUYwMyAv
KiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuaCAqLzsgfTsKQEAgLTcyMjUsNiArNzIyNiw4
IEBACiAJCTQxMDkzODJDMjM0Nzg1MEUwMDk0MjhCQSAvKiBKU0Fib3J0U2lnbmFsQ3VzdG9tLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQWJvcnRTaWduYWxDdXN0b20uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MTBCN0U3MTEwNDVGQUIwMDBEODIyNEYgLyogSlNNZXNzYWdl
RXZlbnRDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNN
ZXNzYWdlRXZlbnRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTBF
NDQ1RjIzNDM3M0FEMDAwMTczRDQgLyogTGliV2ViUlRDU29ja2V0SWRlbnRpZmllci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLmg7
IHBhdGggPSBsaWJ3ZWJydGMvTGliV2ViUlRDU29ja2V0SWRlbnRpZmllci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0MTEwMEM3RTIzRjczOTgyMDAxQkMzM0IgLyogV2ViU29ja2V0
Q2hhbm5lbEluc3BlY3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJT
b2NrZXRDaGFubmVsSW5zcGVjdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQx
MTAwQzdGMjNGNzNBNTYwMDFCQzMzQiAvKiBXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNvY2tldENoYW5uZWxJbnNw
ZWN0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTEwM0FBNzFFMzk3OTBB
MDA3NjlGMDMgLyogUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMTAzQUE3MUUzOTc5MEEwMDc2OUYxNCAv
KiBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMTAzQUE4MUUzOTc5MEEwMDc2OUYwMyAv
KiBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0yMjQ1NSw2ICsyMjQ1OCw4IEBACiAJCQkJOTdBQUJEMDIxNEZBMDlENTAw
NzQ1N0FFIC8qIFdlYlNvY2tldENoYW5uZWwuY3BwICovLAogCQkJCTk3QUFCRDAzMTRGQTA5RDUw
MDc0NTdBRSAvKiBXZWJTb2NrZXRDaGFubmVsLmggKi8sCiAJCQkJOTdBQUJEMDQxNEZBMDlENTAw
NzQ1N0FFIC8qIFdlYlNvY2tldENoYW5uZWxDbGllbnQuaCAqLywKKwkJCQk0MTEwMEM3RjIzRjcz
QTU2MDAxQkMzM0IgLyogV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvci5jcHAgKi8sCisJCQkJNDEx
MDBDN0UyM0Y3Mzk4MjAwMUJDMzNCIC8qIFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3IuaCAqLywK
IAkJCQk0QTM4QkY0RTE0RkUxQzA5MDA2MTI1MTIgLyogV2ViU29ja2V0RGVmbGF0ZUZyYW1lci5j
cHAgKi8sCiAJCQkJNEEzOEJGNEYxNEZFMUMwOTAwNjEyNTEyIC8qIFdlYlNvY2tldERlZmxhdGVG
cmFtZXIuaCAqLywKIAkJCQk5N0FBQkQwNTE0RkEwOUQ1MDA3NDU3QUUgLyogV2ViU29ja2V0RGVm
bGF0ZXIuY3BwICovLApAQCAtMzI5NzIsNiArMzI5NzcsNyBAQAogCQkJCTk3QUFCRDFCMTRGQTA5
RDUwMDc0NTdBRSAvKiBXZWJTb2NrZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3QUFCRDFFMTRG
QTA5RDUwMDc0NTdBRSAvKiBXZWJTb2NrZXRDaGFubmVsLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
N0FBQkQxRjE0RkEwOUQ1MDA3NDU3QUUgLyogV2ViU29ja2V0Q2hhbm5lbENsaWVudC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNDExMDBDODAyM0Y3NDU4MzAwMUJDMzNCIC8qIFdlYlNvY2tldENoYW5u
ZWxJbnNwZWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTRBMzhCRjUxMTRGRTFDMDkwMDYxMjUx
MiAvKiBXZWJTb2NrZXREZWZsYXRlRnJhbWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5N0FBQkQy
MTE0RkEwOUQ1MDA3NDU3QUUgLyogV2ViU29ja2V0RGVmbGF0ZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTk3QUFCRDIzMTRGQTA5RDUwMDc0NTdBRSAvKiBXZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRj
aGVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggNmEzZjM1MzE1MzAxNDE1ZDQyYTY1
OGY1NmU1NzY4ZTk5OGVmMDNhYS4uOWY1ZDNhMzc4ZjIzNWUwZWNlYjE0NTcwNWNmNjAyODgwMjZi
YTdlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29j
a2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2Vi
U29ja2V0Q2hhbm5lbC5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJXZWJQcm9jZXNz
LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9CbG9iLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVu
dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2ViU29j
a2V0Q2hhbm5lbC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2ViU29ja2V0Q2hhbm5lbENsaWVudC5o
PgogI2luY2x1ZGUgPHd0Zi9DaGVja2VkQXJpdGhtZXRpYy5oPgpAQCAtNDcsMTIgKzQ4LDIwIEBA
IFJlZjxXZWJTb2NrZXRDaGFubmVsPiBXZWJTb2NrZXRDaGFubmVsOjpjcmVhdGUoRG9jdW1lbnQm
IGRvY3VtZW50LCBXZWJTb2NrZXRDaGFuCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViU29j
a2V0Q2hhbm5lbChkb2N1bWVudCwgY2xpZW50KSk7CiB9CiAKK3ZvaWQgV2ViU29ja2V0Q2hhbm5l
bDo6bm90aWZ5U2VuZEZyYW1lKFdlYlNvY2tldEZyYW1lOjpPcENvZGUgb3BDb2RlLCBjb25zdCBj
aGFyKiBkYXRhLCBzaXplX3QgbGVuZ3RoKQoreworICAgIFdlYlNvY2tldEZyYW1lIGZyYW1lKG9w
Q29kZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIGRhdGEsIGxlbmd0aCk7CisgICAgbV9pbnNwZWN0b3Iu
ZGlkU2VuZFdlYlNvY2tldEZyYW1lKG1fZG9jdW1lbnQuZ2V0KCksIGZyYW1lKTsKK30KKwogTmV0
d29ya1NlbmRRdWV1ZSBXZWJTb2NrZXRDaGFubmVsOjpjcmVhdGVNZXNzYWdlUXVldWUoRG9jdW1l
bnQmIGRvY3VtZW50LCBXZWJTb2NrZXRDaGFubmVsJiBjaGFubmVsKQogewogICAgIHJldHVybiB7
IGRvY3VtZW50LCBbJmNoYW5uZWxdKGF1dG8mIHN0cmluZykgewogICAgICAgICBhdXRvIGJ5dGVM
ZW5ndGggPSBzdHJpbmcuc2l6ZUluQnl0ZXMoKTsKKyAgICAgICAgY2hhbm5lbC5ub3RpZnlTZW5k
RnJhbWUoV2ViU29ja2V0RnJhbWU6Ok9wQ29kZTo6T3BDb2RlVGV4dCwgc3RyaW5nLnV0ZjgoKS5k
YXRhKCksIGJ5dGVMZW5ndGgpOwogICAgICAgICBjaGFubmVsLnNlbmRNZXNzYWdlKE1lc3NhZ2Vz
OjpOZXR3b3JrU29ja2V0Q2hhbm5lbDo6U2VuZFN0cmluZyB7IHN0cmluZyB9LCBieXRlTGVuZ3Ro
KTsKICAgICB9LCBbJmNoYW5uZWxdKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBieXRlTGVuZ3Ro
KSB7CisgICAgICAgIGNoYW5uZWwubm90aWZ5U2VuZEZyYW1lKFdlYlNvY2tldEZyYW1lOjpPcENv
ZGU6Ok9wQ29kZUJpbmFyeSwgZGF0YSwgYnl0ZUxlbmd0aCk7CiAgICAgICAgIGNoYW5uZWwuc2Vu
ZE1lc3NhZ2UoTWVzc2FnZXM6Ok5ldHdvcmtTb2NrZXRDaGFubmVsOjpTZW5kRGF0YSB7IElQQzo6
RGF0YVJlZmVyZW5jZSB7IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KGRhdGEpLCBi
eXRlTGVuZ3RoIH0gfSwgYnl0ZUxlbmd0aCk7CiAgICAgfSwgWyZjaGFubmVsXShhdXRvIGVycm9y
Q29kZSkgewogICAgICAgICBjaGFubmVsLmZhaWwobWFrZVN0cmluZygiRmFpbGVkIHRvIGxvYWQg
QmxvYjogZXJyb3IgY29kZSA9ICIsIGVycm9yQ29kZSkpOwpAQCAtNjUsNiArNzQsNyBAQCBXZWJT
b2NrZXRDaGFubmVsOjpXZWJTb2NrZXRDaGFubmVsKERvY3VtZW50JiBkb2N1bWVudCwgV2ViU29j
a2V0Q2hhbm5lbENsaWVudCYgYwogICAgICwgIG1faWRlbnRpZmllcihXZWJTb2NrZXRJZGVudGlm
aWVyOjpnZW5lcmF0ZSgpKQogICAgICwgbV9jbGllbnQobWFrZVdlYWtQdHIoY2xpZW50KSkKICAg
ICAsIG1fbWVzc2FnZVF1ZXVlKGNyZWF0ZU1lc3NhZ2VRdWV1ZShkb2N1bWVudCwgKnRoaXMpKQor
ICAgICwgbV9pbnNwZWN0b3IoZG9jdW1lbnQpCiB7CiB9CiAKQEAgLTEwNCw3ICsxMTQsMTIgQEAg
V2ViU29ja2V0Q2hhbm5lbDo6Q29ubmVjdFN0YXR1cyBXZWJTb2NrZXRDaGFubmVsOjpjb25uZWN0
KGNvbnN0IFVSTCYgdXJsLCBjb25zdAogICAgIGlmIChyZXF1ZXN0LT51cmwoKSAhPSB1cmwgJiYg
bV9jbGllbnQpCiAgICAgICAgIG1fY2xpZW50LT5kaWRVcGdyYWRlVVJMKCk7CiAKKyAgICBtX2lu
c3BlY3Rvci5kaWRDcmVhdGVXZWJTb2NrZXQobV9kb2N1bWVudC5nZXQoKSwgdXJsKTsKKyAgICAv
LyBGSVhNRTogR2V0IHRoZSByZWFsIG9uZSBmcm9tIG5ldHdvcmtpbmcgcHJvY2VzcworICAgIG1f
aW5zcGVjdG9yLndpbGxTZW5kV2ViU29ja2V0SGFuZHNoYWtlUmVxdWVzdChtX2RvY3VtZW50Lmdl
dCgpLCAqcmVxdWVzdCk7CisKICAgICBNZXNzYWdlU2VuZGVyOjpzZW5kKE1lc3NhZ2VzOjpOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q3JlYXRlU29ja2V0Q2hhbm5lbCB7ICpyZXF1ZXN0
LCBwcm90b2NvbCwgbV9pZGVudGlmaWVyIH0pOworCiAgICAgcmV0dXJuIENvbm5lY3RTdGF0dXM6
Ok9LOwogfQogCkBAIC0xNDIsNiArMTU3LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9pZCBX
ZWJTb2NrZXRDaGFubmVsOjpzZW5kTWVzc2FnZShUJiYgbWVzc2FnZSwgc2l6ZV90IGJ5dGUKICAg
ICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+IGNvbXBsZXRpb25IYW5kbGVyID0gW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgYnl0ZUxlbmd0aF0gewogICAgICAgICBkZWNy
ZWFzZUJ1ZmZlcmVkQW1vdW50KGJ5dGVMZW5ndGgpOwogICAgIH07CisKICAgICBzZW5kV2l0aEFz
eW5jUmVwbHkoV1RGTW92ZShtZXNzYWdlKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwog
fQogCkBAIC0yMDksNiArMjI1LDkgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpkaXNjb25uZWN0
KCkKICAgICBtX3BlbmRpbmdUYXNrcy5jbGVhcigpOwogICAgIG1fbWVzc2FnZVF1ZXVlLmNsZWFy
KCk7CiAKKworICAgIG1faW5zcGVjdG9yLmRpZENsb3NlV2ViU29ja2V0KG1fZG9jdW1lbnQuZ2V0
KCkpOworCiAgICAgTWVzc2FnZVNlbmRlcjo6c2VuZChNZXNzYWdlczo6TmV0d29ya1NvY2tldENo
YW5uZWw6OkNsb3NlIHsgMCwgeyB9IH0pOwogfQogCkBAIC0yMjcsMTEgKzI0NiwzMiBAQCB2b2lk
IFdlYlNvY2tldENoYW5uZWw6OmRpZENvbm5lY3QoU3RyaW5nJiYgc3VicHJvdG9jb2wsIFN0cmlu
ZyYmIGV4dGVuc2lvbnMpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICAvLyBGSVhNRTog
R2V0IHRoZSByZWFsIG9uZSBmcm9tIG5ldHdvcmtpbmcgcHJvY2VzcworICAgIG1faW5zcGVjdG9y
LmRpZFJlY2VpdmVXZWJTb2NrZXRIYW5kc2hha2VSZXNwb25zZShtX2RvY3VtZW50LmdldCgpLCB7
IH0pOworCiAgICAgbV9zdWJwcm90b2NvbCA9IFdURk1vdmUoc3VicHJvdG9jb2wpOwogICAgIG1f
ZXh0ZW5zaW9ucyA9IFdURk1vdmUoZXh0ZW5zaW9ucyk7CiAgICAgbV9jbGllbnQtPmRpZENvbm5l
Y3QoKTsKIH0KIAorc3RhdGljIGlubGluZSBXZWJTb2NrZXRGcmFtZSBjcmVhdGVXZWJTb2NrZXRG
cmFtZUZvcldlYkluc3BlY3Rvcihjb25zdCBjaGFyKiBkYXRhLCBzaXplX3QgbGVuZ3RoLCBXZWJT
b2NrZXRGcmFtZTo6T3BDb2RlIG9wQ29kZSkKK3sKKyAgICAvLyBUaGlzIGlzIGFuIGFwcHJveGlt
YXRpb24gc2luY2UgZnJhbWVzIGNhbiBiZSBtZXJnZWQgb24gYSBzaW5nbGUgbWVzc2FnZS4KKyAg
ICBXZWJTb2NrZXRGcmFtZSBmcmFtZTsKKyAgICBmcmFtZS5vcENvZGUgPSBvcENvZGU7CisgICAg
ZnJhbWUubWFza2VkID0gZmFsc2U7CisgICAgZnJhbWUucGF5bG9hZCA9IGRhdGE7CisgICAgZnJh
bWUucGF5bG9hZExlbmd0aCA9IGxlbmd0aDsKKworICAgIC8vIFdlYkluc3BlY3RvciBkb2VzIG5v
dCB1c2UgdGhlbS4KKyAgICBmcmFtZS5maW5hbCA9IGZhbHNlOworICAgIGZyYW1lLmNvbXByZXNz
ID0gZmFsc2U7CisgICAgZnJhbWUucmVzZXJ2ZWQyID0gZmFsc2U7CisgICAgZnJhbWUucmVzZXJ2
ZWQzID0gZmFsc2U7CisKKyAgICByZXR1cm4gZnJhbWU7Cit9CisKIHZvaWQgV2ViU29ja2V0Q2hh
bm5lbDo6ZGlkUmVjZWl2ZVRleHQoU3RyaW5nJiYgbWVzc2FnZSkKIHsKICAgICBpZiAobV9pc0Ns
b3NpbmcpCkBAIC0yNDcsNiArMjg3LDggQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpkaWRSZWNl
aXZlVGV4dChTdHJpbmcmJiBtZXNzYWdlKQogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAg
bV9pbnNwZWN0b3IuZGlkUmVjZWl2ZVdlYlNvY2tldEZyYW1lKG1fZG9jdW1lbnQuZ2V0KCksIGNy
ZWF0ZVdlYlNvY2tldEZyYW1lRm9yV2ViSW5zcGVjdG9yKG1lc3NhZ2UudXRmOCgpLmRhdGEoKSwg
bWVzc2FnZS51dGY4KCkubGVuZ3RoKCksIFdlYlNvY2tldEZyYW1lOjpPcENvZGU6Ok9wQ29kZVRl
eHQpKTsKKwogICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZShtZXNzYWdlKTsKIH0KIApA
QCAtMjY1LDYgKzMwNyw5IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZGlkUmVjZWl2ZUJpbmFy
eURhdGEoSVBDOjpEYXRhUmVmZXJlbmNlJiYgZGF0YSkKICAgICAgICAgfSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CisKKyAgICBtX2luc3BlY3Rvci5kaWRSZWNlaXZlV2ViU29ja2V0RnJhbWUo
bV9kb2N1bWVudC5nZXQoKSwgY3JlYXRlV2ViU29ja2V0RnJhbWVGb3JXZWJJbnNwZWN0b3IocmVp
bnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZGF0YS5kYXRhKCkpLCBkYXRhLnNpemUoKSwgV2Vi
U29ja2V0RnJhbWU6Ok9wQ29kZTo6T3BDb2RlQmluYXJ5KSk7CisKICAgICBtX2NsaWVudC0+ZGlk
UmVjZWl2ZUJpbmFyeURhdGEoZGF0YS52ZWN0b3IoKSk7CiB9CiAKQEAgLTI4MCw2ICszMjUsOCBA
QCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRpZENsb3NlKHVuc2lnbmVkIHNob3J0IGNvZGUsIFN0
cmluZyYmIHJlYXNvbikKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIG1faW5zcGVjdG9y
LmRpZENsb3NlV2ViU29ja2V0KG1fZG9jdW1lbnQuZ2V0KCkpOworCiAgICAgaWYgKGNvZGUgPT0g
V2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6Q2xvc2VFdmVudENvZGVOb3JtYWxDbG9zdXJlKQog
ICAgICAgICBtX2NsaWVudC0+ZGlkU3RhcnRDbG9zaW5nSGFuZHNoYWtlKCk7CiAKQEAgLTI5OCw3
ICszNDUsOCBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRpZFJlY2VpdmVNZXNzYWdlRXJyb3Io
U3RyaW5nJiYgZXJyb3JNZXNzYWdlKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8g
RklYTUU6IGRvIHNvbWV0aGluZyB3aXRoIGVycm9yTWVzc2FnZS4KKyAgICBtX2luc3BlY3Rvci5k
aWRSZWNlaXZlV2ViU29ja2V0RnJhbWVFcnJvcihtX2RvY3VtZW50LmdldCgpLCBlcnJvck1lc3Nh
Z2UpOworCiAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5l
bC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5o
CmluZGV4IDMwNjhjNTI4MGIzMzNhNDFhODhlNzBmYTI0NDRkYTM0ZTdiMmMzYzYuLjAxNDUxYjA3
MzdjMTkzNTNjY2M1ODRiMWYyOTE2OTJjNTlkOWY0MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmgKQEAgLTMwLDYgKzMwLDgg
QEAKICNpbmNsdWRlICJXZWJTb2NrZXRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9O
ZXR3b3JrU2VuZFF1ZXVlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvci5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViU29ja2V0RnJhbWUuaD4KICNpbmNsdWRlIDx3dGYvV2Vh
a1B0ci5oPgogCiBuYW1lc3BhY2UgSVBDIHsKQEAgLTc1LDYgKzc3LDggQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHJlZlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsKCkgZmluYWwgeyByZWYoKTsgfQog
ICAgIHZvaWQgZGVyZWZUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbCgpIGZpbmFsIHsgZGVyZWYo
KTsgfQogCisgICAgdm9pZCBub3RpZnlTZW5kRnJhbWUoV2ViQ29yZTo6V2ViU29ja2V0RnJhbWU6
Ok9wQ29kZSwgY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IGxlbmd0aCk7CisKICAgICAvLyBNZXNz
YWdlIHJlY2VpdmVycwogICAgIHZvaWQgZGlkQ29ubmVjdChTdHJpbmcmJiBzdWJwcm90b2NvbCwg
U3RyaW5nJiYgZXh0ZW5zaW9ucyk7CiAgICAgdm9pZCBkaWRSZWNlaXZlVGV4dChTdHJpbmcmJik7
CkBAIC0xMDEsNiArMTA1LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNTdXNwZW5kZWQgeyBm
YWxzZSB9OwogICAgIERlcXVlPEZ1bmN0aW9uPHZvaWQoKT4+IG1fcGVuZGluZ1Rhc2tzOwogICAg
IFdlYkNvcmU6Ok5ldHdvcmtTZW5kUXVldWUgbV9tZXNzYWdlUXVldWU7CisgICAgV2ViQ29yZTo6
V2ViU29ja2V0Q2hhbm5lbEluc3BlY3RvciBtX2luc3BlY3RvcjsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390831</attachid>
            <date>2020-02-14 16:10:48 -0800</date>
            <delta_ts>2020-02-14 17:56:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207794-20200214161047.patch</filename>
            <type>text/plain</type>
            <size>24074</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2NTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjFiOTU2YmRmMThhMTUw
M2E0YjVlOTk2YTYxYzQ4YThlYzhlMDQ2OC4uM2M3NTAzMmYwNzRiMzM1ZWViZmViMzA5NDc1YWY1
YTdmYjA3NWRmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIwLTAyLTE0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgV2ViSW5zcGVjdG9y
IHN1cHBvcnQgdG8gV2ViS2l0OjpXZWJTb2NrZXRDaGFubmVsCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDc3OTQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSB3cmFwcGVyIGFyb3VuZCBJbnNwZWN0
b3IgZm9yIHVzaW5nIGl0IGluIFdlYkluc3BlY3Rvci4KKyAgICAgICAgVGhpcyBhbGxvd3MgZ2V0
dGluZyBwcmVsaW1pbmFyeSBzdXBwb3J0IG9mIFdlYkluc3BlY3RvciBmb3IgdGhlIG5ldyBXZWJT
b2NrZXQgcGF0aC4KKworICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFu
bmVsSW5zcGVjdG9yLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFu
bmVsSW5zcGVjdG9yOjpXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OldlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OmRpZENyZWF0ZVdlYlNvY2tldCk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjp3aWxsU2VuZFdlYlNvY2tl
dEhhbmRzaGFrZVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbElu
c3BlY3Rvcjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNlKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OmRpZENsb3NlV2ViU29ja2V0KToK
KyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OmRpZFJlY2VpdmVX
ZWJTb2NrZXRGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsSW5zcGVj
dG9yOjpkaWRTZW5kV2ViU29ja2V0RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0
Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEZyYW1lRXJyb3IpOgorICAgICAg
ICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yLmg6IEFkZGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRGcmFtZS5oOgorICAgICAg
ICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKwogMjAyMC0wMi0xNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
ICAgICAgICAgSW50cm9kdWNlIE1lZGlhU3RyZWFtUHJpdmF0ZTo6Zm9yRWFjaFRyYWNrCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IDA4ZDAzNDliODQ2MjBhY2I5NDc5MDgwNWI4OWIzNTE2YjgxZTcwYjIuLjViZWFkZWI2
ODJiNzI4ODdhMDhmMTA2ZGRjNzAwMmQ4MTFhZTZkZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkg
QEAKKzIwMjAtMDItMTQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAg
ICAgIEFkZCBXZWJJbnNwZWN0b3Igc3VwcG9ydCB0byBXZWJLaXQ6OldlYlNvY2tldENoYW5uZWwK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzc5NAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENhbGwgV2Vi
SW5zcGVjdG9yIGhvb2tzIHdoZXJldmVyIG5lZWRlZC4KKyAgICAgICAgV2UgZG8gbm90IGhhdmUg
YWNjZXNzIHRvIGZyYW1lcyBzbyB3ZSBtYWtlIGFzIGlmIGEgbWVzc2FnZSBpcyBwYXJ0IG9mIG9u
ZSBmcmFtZS4KKyAgICAgICAgV2UgZG8gbm90IGhhdmUgeWV0IGEgcmVzcG9uc2Ugc28gcHJvdmlk
ZSBhbiBlbXB0eSBvbmUgYXMgd2VsbC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9X
ZWJTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6
bm90aWZ5U2VuZEZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6Y3Jl
YXRlTWVzc2FnZVF1ZXVlKToKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6V2Vi
U29ja2V0Q2hhbm5lbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldENoYW5uZWw6OmNvbm5l
Y3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRDaGFubmVsOjpzZW5kTWVzc2FnZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlNvY2tldENoYW5uZWw6OmRpc2Nvbm5lY3QpOgorICAgICAgICAo
V2ViS2l0OjpXZWJTb2NrZXRDaGFubmVsOjpkaWRDb25uZWN0KToKKyAgICAgICAgKFdlYktpdDo6
Y3JlYXRlV2ViU29ja2V0RnJhbWVGb3JXZWJJbnNwZWN0b3IpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJTb2NrZXRDaGFubmVsOjpkaWRSZWNlaXZlVGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNv
Y2tldENoYW5uZWw6OmRpZFJlY2VpdmVCaW5hcnlEYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
U29ja2V0Q2hhbm5lbDo6ZGlkQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRDaGFu
bmVsOjpkaWRSZWNlaXZlTWVzc2FnZUVycm9yKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdv
cmsvV2ViU29ja2V0Q2hhbm5lbC5oOgorCiAyMDIwLTAyLTE0ICBZb3Vlbm4gRmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBJbnRyb2R1Y2UgTWVkaWFTdHJlYW1Qcml2YXRlOjpm
b3JFYWNoVHJhY2sKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IGFmODc3N2UzZjA1YmZiM2EyZGFiNDA3
OGZlNmRhODBlNGU3ZDIyNjAuLmQ4YzdhYTZmNzg4NGM4YmZmOGUzYzU4MTk0ZjFlYmUxOWVlNDIy
NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTUzLDYgKzE1Myw3IEBAIHNldChXZWJDb3JlX1BS
SVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBNb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWwuaAogICAgIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFu
bmVsLmgKICAgICBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbENsaWVudC5oCisg
ICAgTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWxJbnNwZWN0b3IuaAogICAgIE1v
ZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXREZWZsYXRlRnJhbWVyLmgKICAgICBNb2R1bGVzL3dl
YnNvY2tldHMvV2ViU29ja2V0RGVmbGF0ZXIuaAogICAgIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJT
b2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kZmZjOGJmNmU5MmYzYjQ4YmZkNzk2MGQxNjBlZmQ0NmUzZWMwYzA2Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tl
dENoYW5uZWxJbnNwZWN0b3IuY3BwCkBAIC0wLDAgKzEsOTcgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvci5oIgor
CisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uaCIKKyNpbmNsdWRlICJQYWdlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV2ViU29j
a2V0Q2hhbm5lbEluc3BlY3Rvcjo6V2ViU29ja2V0Q2hhbm5lbEluc3BlY3RvcihEb2N1bWVudCYg
ZG9jdW1lbnQpCit7CisgICAgaWYgKGF1dG8qIHBhZ2UgPSBkb2N1bWVudC5wYWdlKCkpCisgICAg
ICAgIG1fcHJvZ3Jlc3NJZGVudGlmaWVyID0gcGFnZS0+cHJvZ3Jlc3MoKS5jcmVhdGVVbmlxdWVJ
ZGVudGlmaWVyKCk7Cit9CisKK3ZvaWQgV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkQ3Jl
YXRlV2ViU29ja2V0KERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgVVJMJiB1cmwpCit7CisgICAg
aWYgKCFtX3Byb2dyZXNzSWRlbnRpZmllciB8fCAhZG9jdW1lbnQpCisgICAgICAgIHJldHVybjsK
KworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2ViU29ja2V0KGRvY3Vt
ZW50LCBtX3Byb2dyZXNzSWRlbnRpZmllciwgdXJsKTsKK30KKwordm9pZCBXZWJTb2NrZXRDaGFu
bmVsSW5zcGVjdG9yOjp3aWxsU2VuZFdlYlNvY2tldEhhbmRzaGFrZVJlcXVlc3QoRG9jdW1lbnQq
IGRvY3VtZW50LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgaWYgKCFt
X3Byb2dyZXNzSWRlbnRpZmllciB8fCAhZG9jdW1lbnQpCisgICAgICAgIHJldHVybjsKKworICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFNlbmRXZWJTb2NrZXRIYW5kc2hha2VSZXF1
ZXN0KGRvY3VtZW50LCBtX3Byb2dyZXNzSWRlbnRpZmllciwgcmVxdWVzdCk7Cit9CisKK3ZvaWQg
V2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEhhbmRzaGFrZVJl
c3BvbnNlKERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UpCit7CisgICAgaWYgKCFtX3Byb2dyZXNzSWRlbnRpZmllciB8fCAhZG9jdW1lbnQpCisgICAg
ICAgIHJldHVybjsKKworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVdl
YlNvY2tldEhhbmRzaGFrZVJlc3BvbnNlKGRvY3VtZW50LCBtX3Byb2dyZXNzSWRlbnRpZmllciwg
cmVzcG9uc2UpOworfQorCit2b2lkIFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OmRpZENsb3Nl
V2ViU29ja2V0KERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBpZiAoIW1fcHJvZ3Jlc3NJZGVu
dGlmaWVyIHx8ICFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpkaWRDbG9zZVdlYlNvY2tldChkb2N1bWVudCwgbV9wcm9ncmVzc0lkZW50
aWZpZXIpOworfQorCit2b2lkIFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OmRpZFJlY2VpdmVX
ZWJTb2NrZXRGcmFtZShEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IFdlYlNvY2tldEZyYW1lJiBm
cmFtZSkKK3sKKyAgICBpZiAoIW1fcHJvZ3Jlc3NJZGVudGlmaWVyIHx8ICFkb2N1bWVudCkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZl
V2ViU29ja2V0RnJhbWUoZG9jdW1lbnQsIG1fcHJvZ3Jlc3NJZGVudGlmaWVyLCBmcmFtZSk7Cit9
CisKK3ZvaWQgV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkU2VuZFdlYlNvY2tldEZyYW1l
KERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgV2ViU29ja2V0RnJhbWUmIGZyYW1lKQoreworICAg
IGlmICghbV9wcm9ncmVzc0lkZW50aWZpZXIgfHwgIWRvY3VtZW50KQorICAgICAgICByZXR1cm47
CisKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFNlbmRXZWJTb2NrZXRGcmFtZShk
b2N1bWVudCwgbV9wcm9ncmVzc0lkZW50aWZpZXIsIGZyYW1lKTsKK30KKwordm9pZCBXZWJTb2Nr
ZXRDaGFubmVsSW5zcGVjdG9yOjpkaWRSZWNlaXZlV2ViU29ja2V0RnJhbWVFcnJvcihEb2N1bWVu
dCogZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKQoreworICAgIGlmICghbV9w
cm9ncmVzc0lkZW50aWZpZXIgfHwgIWRvY3VtZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZUVycm9yKGRv
Y3VtZW50LCBtX3Byb2dyZXNzSWRlbnRpZmllciwgZXJyb3JNZXNzYWdlKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJz
b2NrZXRzL1dlYlNvY2tldENoYW5uZWxJbnNwZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmMy
NTNhMTdkZWNmYTljYjk4ZGQyNDFkNzgyYmRlZDMwOTkyNzc0ZgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsSW5zcGVj
dG9yLmgKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEb2N1
bWVudDsKK2NsYXNzIFJlc291cmNlUmVxdWVzdDsKK2NsYXNzIFJlc291cmNlUmVzcG9uc2U7Citz
dHJ1Y3QgV2ViU29ja2V0RnJhbWU7CisKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIFdlYlNvY2tldENo
YW5uZWxJbnNwZWN0b3IgeworcHVibGljOgorICAgIGV4cGxpY2l0IFdlYlNvY2tldENoYW5uZWxJ
bnNwZWN0b3IoRG9jdW1lbnQmKTsKKworICAgIHZvaWQgZGlkQ3JlYXRlV2ViU29ja2V0KERvY3Vt
ZW50KiwgY29uc3QgVVJMJik7CisgICAgdm9pZCB3aWxsU2VuZFdlYlNvY2tldEhhbmRzaGFrZVJl
cXVlc3QoRG9jdW1lbnQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVXZWJTb2NrZXRIYW5kc2hha2VSZXNwb25zZShEb2N1bWVudCosIGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmKTsKKyAgICB2b2lkIGRpZENsb3NlV2ViU29ja2V0KERvY3VtZW50Kik7CisgICAg
dm9pZCBkaWRSZWNlaXZlV2ViU29ja2V0RnJhbWUoRG9jdW1lbnQqLCBjb25zdCBXZWJTb2NrZXRG
cmFtZSYpOworICAgIHZvaWQgZGlkU2VuZFdlYlNvY2tldEZyYW1lKERvY3VtZW50KiwgY29uc3Qg
V2ViU29ja2V0RnJhbWUmKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZUVycm9y
KERvY3VtZW50KiwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOworCitwcml2YXRlOgorICAg
IHVuc2lnbmVkIGxvbmcgbV9wcm9ncmVzc0lkZW50aWZpZXIgeyAwIH07Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNv
Y2tldHMvV2ViU29ja2V0RnJhbWUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0
cy9XZWJTb2NrZXRGcmFtZS5oCmluZGV4IGE2NDBmMzI0YWYwYzhmYWYyZmEwZWNjOTc2YzNlODdl
Nzk4ODkwNjUuLmRiMTYwZGNmYjFlZTU5NTVhOWQ1N2ZkYzg3N2I0Zjk0NzNhNTczYTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRGcmFtZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRGcmFtZS5o
CkBAIC01OCw3ICs1OCw3IEBAIHN0cnVjdCBXZWJTb2NrZXRGcmFtZSB7CiAgICAgc3RhdGljIGJv
b2wgbmVlZHNFeHRlbmRlZExlbmd0aEZpZWxkKHNpemVfdCBwYXlsb2FkTGVuZ3RoKTsKICAgICBz
dGF0aWMgUGFyc2VGcmFtZVJlc3VsdCBwYXJzZUZyYW1lKGNoYXIqIGRhdGEsIHNpemVfdCBkYXRh
TGVuZ3RoLCBXZWJTb2NrZXRGcmFtZSYsIGNvbnN0IGNoYXIqJiBmcmFtZUVuZCwgU3RyaW5nJiBl
cnJvclN0cmluZyk7IC8vIE1heSBtb2RpZnkgcGFydCBvZiBkYXRhIHRvIHVubWFzayB0aGUgZnJh
bWUuCiAKLSAgICBXZWJTb2NrZXRGcmFtZShPcENvZGUgPSBPcENvZGVJbnZhbGlkLCBib29sIGZp
bmFsID0gZmFsc2UsIGJvb2wgY29tcHJlc3MgPSBmYWxzZSwgYm9vbCBtYXNrZWQgPSBmYWxzZSwg
Y29uc3QgY2hhciogcGF5bG9hZCA9IG51bGxwdHIsIHNpemVfdCBwYXlsb2FkTGVuZ3RoID0gMCk7
CisgICAgV0VCQ09SRV9FWFBPUlQgV2ViU29ja2V0RnJhbWUoT3BDb2RlID0gT3BDb2RlSW52YWxp
ZCwgYm9vbCBmaW5hbCA9IGZhbHNlLCBib29sIGNvbXByZXNzID0gZmFsc2UsIGJvb2wgbWFza2Vk
ID0gZmFsc2UsIGNvbnN0IGNoYXIqIHBheWxvYWQgPSBudWxscHRyLCBzaXplX3QgcGF5bG9hZExl
bmd0aCA9IDApOwogICAgIHZvaWQgbWFrZUZyYW1lRGF0YShWZWN0b3I8Y2hhcj4mIGZyYW1lRGF0
YSk7CiAKICAgICBPcENvZGUgb3BDb2RlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCAxYTEwZGRiOWY3OTA3
ZDExNzEzMzc4ZGJjN2VlMmYwMzI1ZThkY2VmLi4zMTgxZjViYmM4OTA5ZGNhZWViZTVjYTU0MWQx
OTk4NmY3OWI5OGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMzE2LDYgKzMxNiw3IEBAIE1vZHVsZXMv
d2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKIE1vZHVsZXMvd2Vic29j
a2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuY3BwCiBNb2R1bGVz
L3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENo
YW5uZWwuY3BwCitNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvci5j
cHAKIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXREZWZsYXRlRnJhbWVyLmNwcAogTW9kdWxl
cy93ZWJzb2NrZXRzL1dlYlNvY2tldERlZmxhdGVyLmNwcAogTW9kdWxlcy93ZWJzb2NrZXRzL1dl
YlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMDZjY2MxZjliOTljMDE0NzViYzEz
ZDg5OTlhZGNhZjg2OTAxZTllMi4uNzA2ZWRmNWVhOGRiODc1MGNhYjUxZmRhZTIwOTM0ZTc3N2Ri
YjY3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTAyNyw2ICsxMDI3LDcgQEAKIAkJM0ZGODEzQTcxREJBODY0MDAwOUJGMDAx
IC8qIFBvaW50ZXJMb2NrQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNUNGQzQzNEYxOTI0MDZBOTAwQTBEM0I1IC8qIFBvaW50ZXJMb2Nr
Q29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTQxMDc5MDhDMUZDM0YwMzMwMDYxQjI3QSAvKiBDbGllbnRPcmlnaW4uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMDc5MDhBMUZDM0U0RjIw
MDYxQjI3QSAvKiBDbGllbnRPcmlnaW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk0MTBFNDQ2MTIzNDM3M0U5MDAwMTczRDQgLyogTGliV2ViUlRD
U29ja2V0SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDEwRTQ0NUYyMzQzNzNBRDAwMDE3M0Q0IC8qIExpYldlYlJUQ1NvY2tldElkZW50
aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQk0MTEwMEM4MDIzRjc0NTgzMDAxQkMzM0IgLyogV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDExMDBDN0Uy
M0Y3Mzk4MjAwMUJDMzNCIC8qIFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3IuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTEwM0FBQzFFMzk3OTEw
MDA3NjlGMDMgLyogUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTEwM0FBODFFMzk3OTBBMDA3NjlGMDMg
LyogUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmggKi87IH07CiAJCTQxMTAzQUFDMUUzOTc5
MTAwMDc2OUYxNCAvKiBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDExMDNBQTgxRTM5NzkwQTAw
NzY5RjE0IC8qIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNvY29hLmggKi87IH07CiAJCTQx
MTAzQUFEMUUzOTc5MTAwMDc2OUYwMyAvKiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMTAzQUE5MUUz
OTc5MEEwMDc2OUYwMyAvKiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuaCAqLzsgfTsKQEAg
LTcyMjUsNiArNzIyNiw4IEBACiAJCTQxMDkzODJDMjM0Nzg1MEUwMDk0MjhCQSAvKiBKU0Fib3J0
U2lnbmFsQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQWJvcnRTaWduYWxDdXN0b20u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTBCN0U3MTEwNDVGQUIwMDBEODIy
NEYgLyogSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0MTBFNDQ1RjIzNDM3M0FEMDAwMTczRDQgLyogTGliV2ViUlRDU29ja2V0SWRl
bnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBMaWJXZWJSVENTb2Nr
ZXRJZGVudGlmaWVyLmg7IHBhdGggPSBsaWJ3ZWJydGMvTGliV2ViUlRDU29ja2V0SWRlbnRpZmll
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTEwMEM3RTIzRjczOTgyMDAxQkMz
M0IgLyogV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTQxMTAwQzdGMjNGNzNBNTYwMDFCQzMzQiAvKiBXZWJTb2NrZXRDaGFubmVs
SW5zcGVjdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNv
Y2tldENoYW5uZWxJbnNwZWN0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MTEwM0FBNzFFMzk3OTBBMDA3NjlGMDMgLyogUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlYWx0aW1lT3V0Z29pbmdB
dWRpb1NvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMTAzQUE3MUUz
OTc5MEEwMDc2OUYxNCAvKiBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWFsdGltZU91dGdvaW5nQXVkaW9T
b3VyY2VDb2NvYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMTAzQUE4MUUz
OTc5MEEwMDc2OUYwMyAvKiBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMjQ1NSw2ICsyMjQ1OCw4IEBACiAJCQkJOTdB
QUJEMDIxNEZBMDlENTAwNzQ1N0FFIC8qIFdlYlNvY2tldENoYW5uZWwuY3BwICovLAogCQkJCTk3
QUFCRDAzMTRGQTA5RDUwMDc0NTdBRSAvKiBXZWJTb2NrZXRDaGFubmVsLmggKi8sCiAJCQkJOTdB
QUJEMDQxNEZBMDlENTAwNzQ1N0FFIC8qIFdlYlNvY2tldENoYW5uZWxDbGllbnQuaCAqLywKKwkJ
CQk0MTEwMEM3RjIzRjczQTU2MDAxQkMzM0IgLyogV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvci5j
cHAgKi8sCisJCQkJNDExMDBDN0UyM0Y3Mzk4MjAwMUJDMzNCIC8qIFdlYlNvY2tldENoYW5uZWxJ
bnNwZWN0b3IuaCAqLywKIAkJCQk0QTM4QkY0RTE0RkUxQzA5MDA2MTI1MTIgLyogV2ViU29ja2V0
RGVmbGF0ZUZyYW1lci5jcHAgKi8sCiAJCQkJNEEzOEJGNEYxNEZFMUMwOTAwNjEyNTEyIC8qIFdl
YlNvY2tldERlZmxhdGVGcmFtZXIuaCAqLywKIAkJCQk5N0FBQkQwNTE0RkEwOUQ1MDA3NDU3QUUg
LyogV2ViU29ja2V0RGVmbGF0ZXIuY3BwICovLApAQCAtMzIzMDAsNiArMzIzMDUsNyBAQAogCQkJ
CTUxMEQ0QTM3MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTUxMEQ0QTM4MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5k
bGVDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxQUJBRTFFMTAzQzE5MTMwMDhDNTI2MCAv
KiBTb2NrZXRTdHJlYW1IYW5kbGVJbXBsLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTEwMEM4MDIz
Rjc0NTgzMDAxQkMzM0IgLyogV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJODRBODFGM0UwRkM3REZGMDAwOTU1MzAwIC8qIFNvdXJjZUFscGhhLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDRDNBNDk2MjE3QTlEMDFCMDAyNzRFNDIgLyogU291cmNlQnVmZmVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDRDNBNDk2NTE3QTlEMDFCMDAyNzRFNDIgLyogU291cmNlQnVm
ZmVyTGlzdC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NvY29hL1dlYlNvY2tldFRhc2tDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY29jb2EvV2ViU29ja2V0VGFza0NvY29hLm1tCmluZGV4IGUxMDQ1MWMxZDQy
OTQ3YmUyYzQyYjU3YmNiZmQ5ZDFlODI1MDIyODcuLjMxMjc1MjM4MzU4NmQxZDc1MmQ1OGM3YTVk
ZjRmMjBkYjA0YzQwMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y29jb2EvV2ViU29ja2V0VGFza0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY29jb2EvV2ViU29ja2V0VGFza0NvY29hLm1tCkBAIC01OCwxMSArNTgsOCBAQCB2b2lk
IFdlYlNvY2tldFRhc2s6OnJlYWROZXh0TWVzc2FnZSgpCiAgICAgICAgICAgICBkaWRDbG9zZShb
ZXJyb3IgY29kZV0sIFtlcnJvciBsb2NhbGl6ZWREZXNjcmlwdGlvbl0pOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIGlmICghbWVzc2FnZSkgewotICAgICAgICAgICAg
Ly8gRklYTUU6IHRoaXMgaXMgYSB3b3JrYXJvdW5kIGFuZCB3ZSBzaG91bGQgcHJvYmFibHkgbmV2
ZXIgZ2V0IHRoZXJlLgotICAgICAgICAgICAgZGlkQ2xvc2UoMTAwMCwgIlVua25vd24gZXJyb3Ii
KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQorCisgICAgICAgIEFTU0VSVChtZXNz
YWdlKTsKICAgICAgICAgaWYgKG1lc3NhZ2UudHlwZSA9PSBOU1VSTFNlc3Npb25XZWJTb2NrZXRN
ZXNzYWdlVHlwZVN0cmluZykKICAgICAgICAgICAgIG1fY2hhbm5lbC5kaWRSZWNlaXZlVGV4dCht
ZXNzYWdlLnN0cmluZyk7CiAgICAgICAgIGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggNmEzZjM1MzE1MzAx
NDE1ZDQyYTY1OGY1NmU1NzY4ZTk5OGVmMDNhYS4uOWY1ZDNhMzc4ZjIzNWUwZWNlYjE0NTcwNWNm
NjAyODgwMjZiYTdlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvV2ViU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJX
ZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9CbG9iLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9Eb2N1bWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvV2ViU29ja2V0Q2hhbm5lbC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2ViU29ja2V0Q2hhbm5l
bENsaWVudC5oPgogI2luY2x1ZGUgPHd0Zi9DaGVja2VkQXJpdGhtZXRpYy5oPgpAQCAtNDcsMTIg
KzQ4LDIwIEBAIFJlZjxXZWJTb2NrZXRDaGFubmVsPiBXZWJTb2NrZXRDaGFubmVsOjpjcmVhdGUo
RG9jdW1lbnQmIGRvY3VtZW50LCBXZWJTb2NrZXRDaGFuCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgV2ViU29ja2V0Q2hhbm5lbChkb2N1bWVudCwgY2xpZW50KSk7CiB9CiAKK3ZvaWQgV2ViU29j
a2V0Q2hhbm5lbDo6bm90aWZ5U2VuZEZyYW1lKFdlYlNvY2tldEZyYW1lOjpPcENvZGUgb3BDb2Rl
LCBjb25zdCBjaGFyKiBkYXRhLCBzaXplX3QgbGVuZ3RoKQoreworICAgIFdlYlNvY2tldEZyYW1l
IGZyYW1lKG9wQ29kZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIGRhdGEsIGxlbmd0aCk7CisgICAgbV9p
bnNwZWN0b3IuZGlkU2VuZFdlYlNvY2tldEZyYW1lKG1fZG9jdW1lbnQuZ2V0KCksIGZyYW1lKTsK
K30KKwogTmV0d29ya1NlbmRRdWV1ZSBXZWJTb2NrZXRDaGFubmVsOjpjcmVhdGVNZXNzYWdlUXVl
dWUoRG9jdW1lbnQmIGRvY3VtZW50LCBXZWJTb2NrZXRDaGFubmVsJiBjaGFubmVsKQogewogICAg
IHJldHVybiB7IGRvY3VtZW50LCBbJmNoYW5uZWxdKGF1dG8mIHN0cmluZykgewogICAgICAgICBh
dXRvIGJ5dGVMZW5ndGggPSBzdHJpbmcuc2l6ZUluQnl0ZXMoKTsKKyAgICAgICAgY2hhbm5lbC5u
b3RpZnlTZW5kRnJhbWUoV2ViU29ja2V0RnJhbWU6Ok9wQ29kZTo6T3BDb2RlVGV4dCwgc3RyaW5n
LnV0ZjgoKS5kYXRhKCksIGJ5dGVMZW5ndGgpOwogICAgICAgICBjaGFubmVsLnNlbmRNZXNzYWdl
KE1lc3NhZ2VzOjpOZXR3b3JrU29ja2V0Q2hhbm5lbDo6U2VuZFN0cmluZyB7IHN0cmluZyB9LCBi
eXRlTGVuZ3RoKTsKICAgICB9LCBbJmNoYW5uZWxdKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBi
eXRlTGVuZ3RoKSB7CisgICAgICAgIGNoYW5uZWwubm90aWZ5U2VuZEZyYW1lKFdlYlNvY2tldEZy
YW1lOjpPcENvZGU6Ok9wQ29kZUJpbmFyeSwgZGF0YSwgYnl0ZUxlbmd0aCk7CiAgICAgICAgIGNo
YW5uZWwuc2VuZE1lc3NhZ2UoTWVzc2FnZXM6Ok5ldHdvcmtTb2NrZXRDaGFubmVsOjpTZW5kRGF0
YSB7IElQQzo6RGF0YVJlZmVyZW5jZSB7IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+
KGRhdGEpLCBieXRlTGVuZ3RoIH0gfSwgYnl0ZUxlbmd0aCk7CiAgICAgfSwgWyZjaGFubmVsXShh
dXRvIGVycm9yQ29kZSkgewogICAgICAgICBjaGFubmVsLmZhaWwobWFrZVN0cmluZygiRmFpbGVk
IHRvIGxvYWQgQmxvYjogZXJyb3IgY29kZSA9ICIsIGVycm9yQ29kZSkpOwpAQCAtNjUsNiArNzQs
NyBAQCBXZWJTb2NrZXRDaGFubmVsOjpXZWJTb2NrZXRDaGFubmVsKERvY3VtZW50JiBkb2N1bWVu
dCwgV2ViU29ja2V0Q2hhbm5lbENsaWVudCYgYwogICAgICwgIG1faWRlbnRpZmllcihXZWJTb2Nr
ZXRJZGVudGlmaWVyOjpnZW5lcmF0ZSgpKQogICAgICwgbV9jbGllbnQobWFrZVdlYWtQdHIoY2xp
ZW50KSkKICAgICAsIG1fbWVzc2FnZVF1ZXVlKGNyZWF0ZU1lc3NhZ2VRdWV1ZShkb2N1bWVudCwg
KnRoaXMpKQorICAgICwgbV9pbnNwZWN0b3IoZG9jdW1lbnQpCiB7CiB9CiAKQEAgLTEwNCw3ICsx
MTQsMTIgQEAgV2ViU29ja2V0Q2hhbm5lbDo6Q29ubmVjdFN0YXR1cyBXZWJTb2NrZXRDaGFubmVs
Ojpjb25uZWN0KGNvbnN0IFVSTCYgdXJsLCBjb25zdAogICAgIGlmIChyZXF1ZXN0LT51cmwoKSAh
PSB1cmwgJiYgbV9jbGllbnQpCiAgICAgICAgIG1fY2xpZW50LT5kaWRVcGdyYWRlVVJMKCk7CiAK
KyAgICBtX2luc3BlY3Rvci5kaWRDcmVhdGVXZWJTb2NrZXQobV9kb2N1bWVudC5nZXQoKSwgdXJs
KTsKKyAgICAvLyBGSVhNRTogR2V0IHRoZSByZWFsIG9uZSBmcm9tIG5ldHdvcmtpbmcgcHJvY2Vz
cworICAgIG1faW5zcGVjdG9yLndpbGxTZW5kV2ViU29ja2V0SGFuZHNoYWtlUmVxdWVzdChtX2Rv
Y3VtZW50LmdldCgpLCAqcmVxdWVzdCk7CisKICAgICBNZXNzYWdlU2VuZGVyOjpzZW5kKE1lc3Nh
Z2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q3JlYXRlU29ja2V0Q2hhbm5lbCB7
ICpyZXF1ZXN0LCBwcm90b2NvbCwgbV9pZGVudGlmaWVyIH0pOworCiAgICAgcmV0dXJuIENvbm5l
Y3RTdGF0dXM6Ok9LOwogfQogCkBAIC0xNDIsNiArMTU3LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUg
VD4gdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpzZW5kTWVzc2FnZShUJiYgbWVzc2FnZSwgc2l6ZV90
IGJ5dGUKICAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+IGNvbXBsZXRpb25IYW5kbGVyID0g
W3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgYnl0ZUxlbmd0aF0gewogICAg
ICAgICBkZWNyZWFzZUJ1ZmZlcmVkQW1vdW50KGJ5dGVMZW5ndGgpOwogICAgIH07CisKICAgICBz
ZW5kV2l0aEFzeW5jUmVwbHkoV1RGTW92ZShtZXNzYWdlKSwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOwogfQogCkBAIC0yMDksNiArMjI1LDkgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpk
aXNjb25uZWN0KCkKICAgICBtX3BlbmRpbmdUYXNrcy5jbGVhcigpOwogICAgIG1fbWVzc2FnZVF1
ZXVlLmNsZWFyKCk7CiAKKworICAgIG1faW5zcGVjdG9yLmRpZENsb3NlV2ViU29ja2V0KG1fZG9j
dW1lbnQuZ2V0KCkpOworCiAgICAgTWVzc2FnZVNlbmRlcjo6c2VuZChNZXNzYWdlczo6TmV0d29y
a1NvY2tldENoYW5uZWw6OkNsb3NlIHsgMCwgeyB9IH0pOwogfQogCkBAIC0yMjcsMTEgKzI0Niwz
MiBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRpZENvbm5lY3QoU3RyaW5nJiYgc3VicHJvdG9j
b2wsIFN0cmluZyYmIGV4dGVuc2lvbnMpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICAv
LyBGSVhNRTogR2V0IHRoZSByZWFsIG9uZSBmcm9tIG5ldHdvcmtpbmcgcHJvY2VzcworICAgIG1f
aW5zcGVjdG9yLmRpZFJlY2VpdmVXZWJTb2NrZXRIYW5kc2hha2VSZXNwb25zZShtX2RvY3VtZW50
LmdldCgpLCB7IH0pOworCiAgICAgbV9zdWJwcm90b2NvbCA9IFdURk1vdmUoc3VicHJvdG9jb2wp
OwogICAgIG1fZXh0ZW5zaW9ucyA9IFdURk1vdmUoZXh0ZW5zaW9ucyk7CiAgICAgbV9jbGllbnQt
PmRpZENvbm5lY3QoKTsKIH0KIAorc3RhdGljIGlubGluZSBXZWJTb2NrZXRGcmFtZSBjcmVhdGVX
ZWJTb2NrZXRGcmFtZUZvcldlYkluc3BlY3Rvcihjb25zdCBjaGFyKiBkYXRhLCBzaXplX3QgbGVu
Z3RoLCBXZWJTb2NrZXRGcmFtZTo6T3BDb2RlIG9wQ29kZSkKK3sKKyAgICAvLyBUaGlzIGlzIGFu
IGFwcHJveGltYXRpb24gc2luY2UgZnJhbWVzIGNhbiBiZSBtZXJnZWQgb24gYSBzaW5nbGUgbWVz
c2FnZS4KKyAgICBXZWJTb2NrZXRGcmFtZSBmcmFtZTsKKyAgICBmcmFtZS5vcENvZGUgPSBvcENv
ZGU7CisgICAgZnJhbWUubWFza2VkID0gZmFsc2U7CisgICAgZnJhbWUucGF5bG9hZCA9IGRhdGE7
CisgICAgZnJhbWUucGF5bG9hZExlbmd0aCA9IGxlbmd0aDsKKworICAgIC8vIFdlYkluc3BlY3Rv
ciBkb2VzIG5vdCB1c2UgdGhlbS4KKyAgICBmcmFtZS5maW5hbCA9IGZhbHNlOworICAgIGZyYW1l
LmNvbXByZXNzID0gZmFsc2U7CisgICAgZnJhbWUucmVzZXJ2ZWQyID0gZmFsc2U7CisgICAgZnJh
bWUucmVzZXJ2ZWQzID0gZmFsc2U7CisKKyAgICByZXR1cm4gZnJhbWU7Cit9CisKIHZvaWQgV2Vi
U29ja2V0Q2hhbm5lbDo6ZGlkUmVjZWl2ZVRleHQoU3RyaW5nJiYgbWVzc2FnZSkKIHsKICAgICBp
ZiAobV9pc0Nsb3NpbmcpCkBAIC0yNDcsNiArMjg3LDggQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVs
OjpkaWRSZWNlaXZlVGV4dChTdHJpbmcmJiBtZXNzYWdlKQogICAgICAgICByZXR1cm47CiAgICAg
fQogCisgICAgbV9pbnNwZWN0b3IuZGlkUmVjZWl2ZVdlYlNvY2tldEZyYW1lKG1fZG9jdW1lbnQu
Z2V0KCksIGNyZWF0ZVdlYlNvY2tldEZyYW1lRm9yV2ViSW5zcGVjdG9yKG1lc3NhZ2UudXRmOCgp
LmRhdGEoKSwgbWVzc2FnZS51dGY4KCkubGVuZ3RoKCksIFdlYlNvY2tldEZyYW1lOjpPcENvZGU6
Ok9wQ29kZVRleHQpKTsKKwogICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZShtZXNzYWdl
KTsKIH0KIApAQCAtMjY1LDYgKzMwNyw5IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZGlkUmVj
ZWl2ZUJpbmFyeURhdGEoSVBDOjpEYXRhUmVmZXJlbmNlJiYgZGF0YSkKICAgICAgICAgfSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CisKKyAgICBtX2luc3BlY3Rvci5kaWRSZWNlaXZlV2ViU29j
a2V0RnJhbWUobV9kb2N1bWVudC5nZXQoKSwgY3JlYXRlV2ViU29ja2V0RnJhbWVGb3JXZWJJbnNw
ZWN0b3IocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZGF0YS5kYXRhKCkpLCBkYXRhLnNp
emUoKSwgV2ViU29ja2V0RnJhbWU6Ok9wQ29kZTo6T3BDb2RlQmluYXJ5KSk7CisKICAgICBtX2Ns
aWVudC0+ZGlkUmVjZWl2ZUJpbmFyeURhdGEoZGF0YS52ZWN0b3IoKSk7CiB9CiAKQEAgLTI4MCw2
ICszMjUsOCBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRpZENsb3NlKHVuc2lnbmVkIHNob3J0
IGNvZGUsIFN0cmluZyYmIHJlYXNvbikKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIG1f
aW5zcGVjdG9yLmRpZENsb3NlV2ViU29ja2V0KG1fZG9jdW1lbnQuZ2V0KCkpOworCiAgICAgaWYg
KGNvZGUgPT0gV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6Q2xvc2VFdmVudENvZGVOb3JtYWxD
bG9zdXJlKQogICAgICAgICBtX2NsaWVudC0+ZGlkU3RhcnRDbG9zaW5nSGFuZHNoYWtlKCk7CiAK
QEAgLTI5OCw3ICszNDUsOCBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRpZFJlY2VpdmVNZXNz
YWdlRXJyb3IoU3RyaW5nJiYgZXJyb3JNZXNzYWdlKQogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgLy8gRklYTUU6IGRvIHNvbWV0aGluZyB3aXRoIGVycm9yTWVzc2FnZS4KKyAgICBtX2lu
c3BlY3Rvci5kaWRSZWNlaXZlV2ViU29ja2V0RnJhbWVFcnJvcihtX2RvY3VtZW50LmdldCgpLCBl
cnJvck1lc3NhZ2UpOworCiAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29j
a2V0Q2hhbm5lbC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0
Q2hhbm5lbC5oCmluZGV4IDMwNjhjNTI4MGIzMzNhNDFhODhlNzBmYTI0NDRkYTM0ZTdiMmMzYzYu
LjAxNDUxYjA3MzdjMTkzNTNjY2M1ODRiMWYyOTE2OTJjNTlkOWY0MjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmgKQEAgLTMw
LDYgKzMwLDggQEAKICNpbmNsdWRlICJXZWJTb2NrZXRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9OZXR3b3JrU2VuZFF1ZXVlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViU29ja2V0Q2hhbm5lbElu
c3BlY3Rvci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViU29ja2V0RnJhbWUuaD4KICNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgSVBDIHsKQEAgLTc1LDYgKzc3LDggQEAgcHJp
dmF0ZToKICAgICB2b2lkIHJlZlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsKCkgZmluYWwgeyBy
ZWYoKTsgfQogICAgIHZvaWQgZGVyZWZUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbCgpIGZpbmFs
IHsgZGVyZWYoKTsgfQogCisgICAgdm9pZCBub3RpZnlTZW5kRnJhbWUoV2ViQ29yZTo6V2ViU29j
a2V0RnJhbWU6Ok9wQ29kZSwgY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IGxlbmd0aCk7CisKICAg
ICAvLyBNZXNzYWdlIHJlY2VpdmVycwogICAgIHZvaWQgZGlkQ29ubmVjdChTdHJpbmcmJiBzdWJw
cm90b2NvbCwgU3RyaW5nJiYgZXh0ZW5zaW9ucyk7CiAgICAgdm9pZCBkaWRSZWNlaXZlVGV4dChT
dHJpbmcmJik7CkBAIC0xMDEsNiArMTA1LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNTdXNw
ZW5kZWQgeyBmYWxzZSB9OwogICAgIERlcXVlPEZ1bmN0aW9uPHZvaWQoKT4+IG1fcGVuZGluZ1Rh
c2tzOwogICAgIFdlYkNvcmU6Ok5ldHdvcmtTZW5kUXVldWUgbV9tZXNzYWdlUXVldWU7CisgICAg
V2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbEluc3BlY3RvciBtX2luc3BlY3RvcjsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390845</attachid>
            <date>2020-02-14 17:56:40 -0800</date>
            <delta_ts>2020-02-17 10:41:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207794-20200214175639.patch</filename>
            <type>text/plain</type>
            <size>22917</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2NTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzljYzc5MDhlOTUyOWFj
YWRmOWRjNmVkOTFlZTQ0MzI5ODIxMmQzMy4uZDM1ZmIwNjRmZWU1Mjc3ZjY4YzVlNGI3ZWM3OWIw
MTZmNzgxMGNmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIwLTAyLTE0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgV2ViSW5zcGVjdG9y
IHN1cHBvcnQgdG8gV2ViS2l0OjpXZWJTb2NrZXRDaGFubmVsCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDc3OTQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSB3cmFwcGVyIGFyb3VuZCBJbnNwZWN0
b3IgZm9yIHVzaW5nIGl0IGluIFdlYkluc3BlY3Rvci4KKyAgICAgICAgVGhpcyBhbGxvd3MgZ2V0
dGluZyBwcmVsaW1pbmFyeSBzdXBwb3J0IG9mIFdlYkluc3BlY3RvciBmb3IgdGhlIG5ldyBXZWJT
b2NrZXQgcGF0aC4KKworICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFu
bmVsSW5zcGVjdG9yLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFu
bmVsSW5zcGVjdG9yOjpXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OldlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OmRpZENyZWF0ZVdlYlNvY2tldCk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjp3aWxsU2VuZFdlYlNvY2tl
dEhhbmRzaGFrZVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbElu
c3BlY3Rvcjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNlKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OmRpZENsb3NlV2ViU29ja2V0KToK
KyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OmRpZFJlY2VpdmVX
ZWJTb2NrZXRGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsSW5zcGVj
dG9yOjpkaWRTZW5kV2ViU29ja2V0RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0
Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEZyYW1lRXJyb3IpOgorICAgICAg
ICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yLmg6IEFkZGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRGcmFtZS5oOgorICAgICAg
ICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKwogMjAyMC0wMi0xMiAgWW9zaGlha2kgSml0c3VrYXdhICA8eW9zaGlha2kuaml0c3Vr
YXdhQHNvbnkuY29tPgogCiAgICAgICAgIFtXZWJDcnlwdG9dW0NvbW1vbkNyeXB0b10gSW5jb3Jy
ZWN0IEFFUy1DVFIgd2l0aCBjb3VudGVyTGVuZ3RoIGxvbmdlciB0aGFuIDY0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4
IDFkNmFiMTA0ZjkxYTczYWJjMzI3MjBjMTkwY2FlNjdjMTZjNDI5NzAuLjI1MWIxYjBkNGUyNDVi
NDkwZmU3YTc4YzcwNzU5OGE1NWY3MjEyNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIw
MjAtMDItMTQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFk
ZCBXZWJJbnNwZWN0b3Igc3VwcG9ydCB0byBXZWJLaXQ6OldlYlNvY2tldENoYW5uZWwKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzc5NAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENhbGwgV2ViSW5zcGVj
dG9yIGhvb2tzIHdoZXJldmVyIG5lZWRlZC4KKyAgICAgICAgV2UgZG8gbm90IGhhdmUgYWNjZXNz
IHRvIGZyYW1lcyBzbyB3ZSBtYWtlIGFzIGlmIGEgbWVzc2FnZSBpcyBwYXJ0IG9mIG9uZSBmcmFt
ZS4KKyAgICAgICAgV2UgZG8gbm90IGhhdmUgeWV0IGEgcmVzcG9uc2Ugc28gcHJvdmlkZSBhbiBl
bXB0eSBvbmUgYXMgd2VsbC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJTb2Nr
ZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6bm90aWZ5
U2VuZEZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlTWVz
c2FnZVF1ZXVlKToKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6V2ViU29ja2V0
Q2hhbm5lbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldENoYW5uZWw6OmNvbm5lY3QpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRDaGFubmVsOjpzZW5kTWVzc2FnZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlNvY2tldENoYW5uZWw6OmRpc2Nvbm5lY3QpOgorICAgICAgICAoV2ViS2l0
OjpXZWJTb2NrZXRDaGFubmVsOjpkaWRDb25uZWN0KToKKyAgICAgICAgKFdlYktpdDo6Y3JlYXRl
V2ViU29ja2V0RnJhbWVGb3JXZWJJbnNwZWN0b3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2Nr
ZXRDaGFubmVsOjpkaWRSZWNlaXZlVGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldENo
YW5uZWw6OmRpZFJlY2VpdmVCaW5hcnlEYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0
Q2hhbm5lbDo6ZGlkQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRDaGFubmVsOjpk
aWRSZWNlaXZlTWVzc2FnZUVycm9yKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2Vi
U29ja2V0Q2hhbm5lbC5oOgorCiAyMDIwLTAyLTEyICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRA
YXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNTYwMTAuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZQppbmRleCBhZjg3NzdlM2YwNWJmYjNhMmRhYjQwNzhmZTZkYTgwZTRlN2Qy
MjYwLi5kOGM3YWE2Zjc4ODRjOGJmZjhlM2M1ODE5NGYxZWJlMTllZTQyMjU5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRl
cnMuY21ha2UKQEAgLTE1Myw2ICsxNTMsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09S
S19IRUFERVJTCiAgICAgTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsLmgKICAgICBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5oCiAgICAgTW9k
dWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWxDbGllbnQuaAorICAgIE1vZHVsZXMvd2Vi
c29ja2V0cy9XZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yLmgKICAgICBNb2R1bGVzL3dlYnNvY2tl
dHMvV2ViU29ja2V0RGVmbGF0ZUZyYW1lci5oCiAgICAgTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNv
Y2tldERlZmxhdGVyLmgKICAgICBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RXh0ZW5zaW9u
RGlzcGF0Y2hlci5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tl
dHMvV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvci5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGZm
YzhiZjZlOTJmM2I0OGJmZDc5NjBkMTYwZWZkNDZlM2VjMGMwNgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsSW5zcGVj
dG9yLmNwcApAQCAtMCwwICsxLDk3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIldlYlNvY2tldENoYW5uZWxJbnNwZWN0b3IuaCIKKworI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCisjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCisjaW5jbHVk
ZSAiUGFnZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dlYlNvY2tldENoYW5uZWxJbnNw
ZWN0b3I6OldlYlNvY2tldENoYW5uZWxJbnNwZWN0b3IoRG9jdW1lbnQmIGRvY3VtZW50KQorewor
ICAgIGlmIChhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpKQorICAgICAgICBtX3Byb2dyZXNz
SWRlbnRpZmllciA9IHBhZ2UtPnByb2dyZXNzKCkuY3JlYXRlVW5pcXVlSWRlbnRpZmllcigpOwor
fQorCit2b2lkIFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OmRpZENyZWF0ZVdlYlNvY2tldChE
b2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IFVSTCYgdXJsKQoreworICAgIGlmICghbV9wcm9ncmVz
c0lkZW50aWZpZXIgfHwgIWRvY3VtZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYlNvY2tldChkb2N1bWVudCwgbV9wcm9ncmVz
c0lkZW50aWZpZXIsIHVybCk7Cit9CisKK3ZvaWQgV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6
d2lsbFNlbmRXZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0KERvY3VtZW50KiBkb2N1bWVudCwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIGlmICghbV9wcm9ncmVzc0lkZW50
aWZpZXIgfHwgIWRvY3VtZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OndpbGxTZW5kV2ViU29ja2V0SGFuZHNoYWtlUmVxdWVzdChkb2N1bWVudCwg
bV9wcm9ncmVzc0lkZW50aWZpZXIsIHJlcXVlc3QpOworfQorCit2b2lkIFdlYlNvY2tldENoYW5u
ZWxJbnNwZWN0b3I6OmRpZFJlY2VpdmVXZWJTb2NrZXRIYW5kc2hha2VSZXNwb25zZShEb2N1bWVu
dCogZG9jdW1lbnQsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQoreworICAgIGlm
ICghbV9wcm9ncmVzc0lkZW50aWZpZXIgfHwgIWRvY3VtZW50KQorICAgICAgICByZXR1cm47CisK
KyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVXZWJTb2NrZXRIYW5kc2hh
a2VSZXNwb25zZShkb2N1bWVudCwgbV9wcm9ncmVzc0lkZW50aWZpZXIsIHJlc3BvbnNlKTsKK30K
Kwordm9pZCBXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjpkaWRDbG9zZVdlYlNvY2tldChEb2N1
bWVudCogZG9jdW1lbnQpCit7CisgICAgaWYgKCFtX3Byb2dyZXNzSWRlbnRpZmllciB8fCAhZG9j
dW1lbnQpCisgICAgICAgIHJldHVybjsKKworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
ZGlkQ2xvc2VXZWJTb2NrZXQoZG9jdW1lbnQsIG1fcHJvZ3Jlc3NJZGVudGlmaWVyKTsKK30KKwor
dm9pZCBXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjpkaWRSZWNlaXZlV2ViU29ja2V0RnJhbWUo
RG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBXZWJTb2NrZXRGcmFtZSYgZnJhbWUpCit7CisgICAg
aWYgKCFtX3Byb2dyZXNzSWRlbnRpZmllciB8fCAhZG9jdW1lbnQpCisgICAgICAgIHJldHVybjsK
KworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEZyYW1l
KGRvY3VtZW50LCBtX3Byb2dyZXNzSWRlbnRpZmllciwgZnJhbWUpOworfQorCit2b2lkIFdlYlNv
Y2tldENoYW5uZWxJbnNwZWN0b3I6OmRpZFNlbmRXZWJTb2NrZXRGcmFtZShEb2N1bWVudCogZG9j
dW1lbnQsIGNvbnN0IFdlYlNvY2tldEZyYW1lJiBmcmFtZSkKK3sKKyAgICBpZiAoIW1fcHJvZ3Jl
c3NJZGVudGlmaWVyIHx8ICFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRTZW5kV2ViU29ja2V0RnJhbWUoZG9jdW1lbnQsIG1fcHJv
Z3Jlc3NJZGVudGlmaWVyLCBmcmFtZSk7Cit9CisKK3ZvaWQgV2ViU29ja2V0Q2hhbm5lbEluc3Bl
Y3Rvcjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEZyYW1lRXJyb3IoRG9jdW1lbnQqIGRvY3VtZW50LCBj
b25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKK3sKKyAgICBpZiAoIW1fcHJvZ3Jlc3NJZGVudGlm
aWVyIHx8ICFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpkaWRSZWNlaXZlV2ViU29ja2V0RnJhbWVFcnJvcihkb2N1bWVudCwgbV9wcm9n
cmVzc0lkZW50aWZpZXIsIGVycm9yTWVzc2FnZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2Nr
ZXRDaGFubmVsSW5zcGVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMv
V2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJjMjUzYTE3ZGVjZmE5Y2I5
OGRkMjQxZDc4MmJkZWQzMDk5Mjc3NGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvci5oCkBAIC0wLDAg
KzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBS
ZXNvdXJjZVJlcXVlc3Q7CitjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOworc3RydWN0IFdlYlNvY2tl
dEZyYW1lOworCitjbGFzcyBXRUJDT1JFX0VYUE9SVCBXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9y
IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yKERvY3Vt
ZW50Jik7CisKKyAgICB2b2lkIGRpZENyZWF0ZVdlYlNvY2tldChEb2N1bWVudCosIGNvbnN0IFVS
TCYpOworICAgIHZvaWQgd2lsbFNlbmRXZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0KERvY3VtZW50
KiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViU29ja2V0
SGFuZHNoYWtlUmVzcG9uc2UoRG9jdW1lbnQqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Cisg
ICAgdm9pZCBkaWRDbG9zZVdlYlNvY2tldChEb2N1bWVudCopOworICAgIHZvaWQgZGlkUmVjZWl2
ZVdlYlNvY2tldEZyYW1lKERvY3VtZW50KiwgY29uc3QgV2ViU29ja2V0RnJhbWUmKTsKKyAgICB2
b2lkIGRpZFNlbmRXZWJTb2NrZXRGcmFtZShEb2N1bWVudCosIGNvbnN0IFdlYlNvY2tldEZyYW1l
Jik7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViU29ja2V0RnJhbWVFcnJvcihEb2N1bWVudCosIGNv
bnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKKworcHJpdmF0ZToKKyAgICB1bnNpZ25lZCBsb25n
IG1fcHJvZ3Jlc3NJZGVudGlmaWVyIHsgMCB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tl
dEZyYW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RnJh
bWUuaAppbmRleCBhNjQwZjMyNGFmMGM4ZmFmMmZhMGVjYzk3NmMzZTg3ZTc5ODg5MDY1Li5kYjE2
MGRjZmIxZWU1OTU1YTlkNTdmZGM4NzdiNGY5NDczYTU3M2EwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RnJhbWUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RnJhbWUuaApAQCAtNTgsNyArNTgs
NyBAQCBzdHJ1Y3QgV2ViU29ja2V0RnJhbWUgewogICAgIHN0YXRpYyBib29sIG5lZWRzRXh0ZW5k
ZWRMZW5ndGhGaWVsZChzaXplX3QgcGF5bG9hZExlbmd0aCk7CiAgICAgc3RhdGljIFBhcnNlRnJh
bWVSZXN1bHQgcGFyc2VGcmFtZShjaGFyKiBkYXRhLCBzaXplX3QgZGF0YUxlbmd0aCwgV2ViU29j
a2V0RnJhbWUmLCBjb25zdCBjaGFyKiYgZnJhbWVFbmQsIFN0cmluZyYgZXJyb3JTdHJpbmcpOyAv
LyBNYXkgbW9kaWZ5IHBhcnQgb2YgZGF0YSB0byB1bm1hc2sgdGhlIGZyYW1lLgogCi0gICAgV2Vi
U29ja2V0RnJhbWUoT3BDb2RlID0gT3BDb2RlSW52YWxpZCwgYm9vbCBmaW5hbCA9IGZhbHNlLCBi
b29sIGNvbXByZXNzID0gZmFsc2UsIGJvb2wgbWFza2VkID0gZmFsc2UsIGNvbnN0IGNoYXIqIHBh
eWxvYWQgPSBudWxscHRyLCBzaXplX3QgcGF5bG9hZExlbmd0aCA9IDApOworICAgIFdFQkNPUkVf
RVhQT1JUIFdlYlNvY2tldEZyYW1lKE9wQ29kZSA9IE9wQ29kZUludmFsaWQsIGJvb2wgZmluYWwg
PSBmYWxzZSwgYm9vbCBjb21wcmVzcyA9IGZhbHNlLCBib29sIG1hc2tlZCA9IGZhbHNlLCBjb25z
dCBjaGFyKiBwYXlsb2FkID0gbnVsbHB0ciwgc2l6ZV90IHBheWxvYWRMZW5ndGggPSAwKTsKICAg
ICB2b2lkIG1ha2VGcmFtZURhdGEoVmVjdG9yPGNoYXI+JiBmcmFtZURhdGEpOwogCiAgICAgT3BD
b2RlIG9wQ29kZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggMzk3NjEzNGRiOGUxZTZlM2ZjYTcwODlhNTFm
MzBmNmZiOWNiYzEzMS4uZTQwMzE1MjhlNjcyM2M2ZWMyNjk3NWIwMTgyZTg3Njc3Zjg4NzVjNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKQEAgLTMxNiw2ICszMTYsNyBAQCBNb2R1bGVzL3dlYnNvY2tldHMvVGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCiBNb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmNwcAogTW9kdWxlcy93ZWJzb2NrZXRzL1dl
YlNvY2tldC5jcHAKIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAorTW9k
dWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWxJbnNwZWN0b3IuY3BwCiBNb2R1bGVzL3dl
YnNvY2tldHMvV2ViU29ja2V0RGVmbGF0ZUZyYW1lci5jcHAKIE1vZHVsZXMvd2Vic29ja2V0cy9X
ZWJTb2NrZXREZWZsYXRlci5jcHAKIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRFeHRlbnNp
b25EaXNwYXRjaGVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDVmYWQ1YzE5YjhlOGQ2NWRmMjlkZDJhMWY1NTNmN2Y2ZTJm
MjliMzkuLjNmMWVkMzYxOGU5NmFhMTJkNjkwZTNmNDE1OGE3MjAyNjM4OWU4OGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEw
MjcsNiArMTAyNyw3IEBACiAJCTNGRjgxM0E3MURCQTg2NDAwMDlCRjAwMSAvKiBQb2ludGVyTG9j
a0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDVDRkM0MzRGMTkyNDA2QTkwMEEwRDNCNSAvKiBQb2ludGVyTG9ja0NvbnRyb2xsZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTA3OTA4
QzFGQzNGMDMzMDA2MUIyN0EgLyogQ2xpZW50T3JpZ2luLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTA3OTA4QTFGQzNFNEYyMDA2MUIyN0EgLyogQ2xp
ZW50T3JpZ2luLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJNDEwRTQ0NjEyMzQzNzNFOTAwMDE3M0Q0IC8qIExpYldlYlJUQ1NvY2tldElkZW50aWZp
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMEU0
NDVGMjM0MzczQUQwMDAxNzNENCAvKiBMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDExMDBDODAyM0Y3
NDU4MzAwMUJDMzNCIC8qIFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3IuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMTAwQzdFMjNGNzM5ODIwMDFCQzMz
QiAvKiBXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDExMDNBQUMxRTM5NzkxMDAwNzY5RjAzIC8qIFJl
YWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDExMDNBQTgxRTM5NzkwQTAwNzY5RjAzIC8qIFJlYWx0aW1lT3V0
Z29pbmdBdWRpb1NvdXJjZS5oICovOyB9OwogCQk0MTEwM0FBQzFFMzk3OTEwMDA3NjlGMTQgLyog
UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2EuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMTAzQUE4MUUzOTc5MEEwMDc2OUYxNCAvKiBSZWFs
dGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYS5oICovOyB9OwogCQk0MTEwM0FBRDFFMzk3OTEw
MDA3NjlGMDMgLyogUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTEwM0FBOTFFMzk3OTBBMDA3NjlGMDMg
LyogUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmggKi87IH07CkBAIC03MjI1LDYgKzcyMjYs
OCBAQAogCQk0MTA5MzgyQzIzNDc4NTBFMDA5NDI4QkEgLyogSlNBYm9ydFNpZ25hbEN1c3RvbS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0Fib3J0U2lnbmFsQ3VzdG9tLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwQjdFNzExMDQ1RkFCMDAwRDgyMjRGIC8qIEpTTWVzc2Fn
ZUV2ZW50Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
TWVzc2FnZUV2ZW50Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEw
RTQ0NUYyMzQzNzNBRDAwMDE3M0Q0IC8qIExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTGliV2ViUlRDU29ja2V0SWRlbnRpZmllci5o
OyBwYXRoID0gbGlid2VicnRjL0xpYldlYlJUQ1NvY2tldElkZW50aWZpZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDExMDBDN0UyM0Y3Mzk4MjAwMUJDMzNCIC8qIFdlYlNvY2tl
dENoYW5uZWxJbnNwZWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
U29ja2V0Q2hhbm5lbEluc3BlY3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
MTEwMEM3RjIzRjczQTU2MDAxQkMzM0IgLyogV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTb2NrZXRDaGFubmVsSW5z
cGVjdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDExMDNBQTcxRTM5Nzkw
QTAwNzY5RjAzIC8qIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTEwM0FBNzFFMzk3OTBBMDA3NjlGMTQg
LyogUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2EuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2EuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTEwM0FBODFFMzk3OTBBMDA3NjlGMDMg
LyogUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMjI0NTMsNiArMjI0NTYsOCBAQAogCQkJCTk3QUFCRDAyMTRGQTA5RDUw
MDc0NTdBRSAvKiBXZWJTb2NrZXRDaGFubmVsLmNwcCAqLywKIAkJCQk5N0FBQkQwMzE0RkEwOUQ1
MDA3NDU3QUUgLyogV2ViU29ja2V0Q2hhbm5lbC5oICovLAogCQkJCTk3QUFCRDA0MTRGQTA5RDUw
MDc0NTdBRSAvKiBXZWJTb2NrZXRDaGFubmVsQ2xpZW50LmggKi8sCisJCQkJNDExMDBDN0YyM0Y3
M0E1NjAwMUJDMzNCIC8qIFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3IuY3BwICovLAorCQkJCTQx
MTAwQzdFMjNGNzM5ODIwMDFCQzMzQiAvKiBXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yLmggKi8s
CiAJCQkJNEEzOEJGNEUxNEZFMUMwOTAwNjEyNTEyIC8qIFdlYlNvY2tldERlZmxhdGVGcmFtZXIu
Y3BwICovLAogCQkJCTRBMzhCRjRGMTRGRTFDMDkwMDYxMjUxMiAvKiBXZWJTb2NrZXREZWZsYXRl
RnJhbWVyLmggKi8sCiAJCQkJOTdBQUJEMDUxNEZBMDlENTAwNzQ1N0FFIC8qIFdlYlNvY2tldERl
ZmxhdGVyLmNwcCAqLywKQEAgLTMyMjk4LDYgKzMyMzAzLDcgQEAKIAkJCQk1MTBENEEzNzEwMzE2
NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MTBENEEzODEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MUFCQUUxRTEwM0MxOTEzMDA4QzUyNjAgLyogU29ja2V0U3RyZWFt
SGFuZGxlSW1wbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDExMDBDODAyM0Y3NDU4MzAwMUJDMzNC
IC8qIFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTg0QTgx
RjNFMEZDN0RGRjAwMDk1NTMwMCAvKiBTb3VyY2VBbHBoYS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
Q0QzQTQ5NjIxN0E5RDAxQjAwMjc0RTQyIC8qIFNvdXJjZUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQ0QzQTQ5NjUxN0E5RDAxQjAwMjc0RTQyIC8qIFNvdXJjZUJ1ZmZlckxpc3QuaCBpbiBI
ZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
V2ViU29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9X
ZWJTb2NrZXRDaGFubmVsLmNwcAppbmRleCA2YTNmMzUzMTUzMDE0MTVkNDJhNjU4ZjU2ZTU3Njhl
OTk4ZWYwM2FhLi44NzRiYjNmNWZkNTkzMzNmZTYzNTVlNTlhMDBjYWY5NGFlNjVlYmZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVs
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFu
bmVsLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL0Jsb2IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50Lmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9QYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJTb2NrZXRDaGFubmVs
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJTb2NrZXRDaGFubmVsQ2xpZW50Lmg+CiAjaW5jbHVk
ZSA8d3RmL0NoZWNrZWRBcml0aG1ldGljLmg+CkBAIC00NywxMiArNDgsMjAgQEAgUmVmPFdlYlNv
Y2tldENoYW5uZWw+IFdlYlNvY2tldENoYW5uZWw6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQs
IFdlYlNvY2tldENoYW4KICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJTb2NrZXRDaGFubmVs
KGRvY3VtZW50LCBjbGllbnQpKTsKIH0KIAordm9pZCBXZWJTb2NrZXRDaGFubmVsOjpub3RpZnlT
ZW5kRnJhbWUoV2ViU29ja2V0RnJhbWU6Ok9wQ29kZSBvcENvZGUsIGNvbnN0IGNoYXIqIGRhdGEs
IHNpemVfdCBsZW5ndGgpCit7CisgICAgV2ViU29ja2V0RnJhbWUgZnJhbWUob3BDb2RlLCB0cnVl
LCBmYWxzZSwgdHJ1ZSwgZGF0YSwgbGVuZ3RoKTsKKyAgICBtX2luc3BlY3Rvci5kaWRTZW5kV2Vi
U29ja2V0RnJhbWUobV9kb2N1bWVudC5nZXQoKSwgZnJhbWUpOworfQorCiBOZXR3b3JrU2VuZFF1
ZXVlIFdlYlNvY2tldENoYW5uZWw6OmNyZWF0ZU1lc3NhZ2VRdWV1ZShEb2N1bWVudCYgZG9jdW1l
bnQsIFdlYlNvY2tldENoYW5uZWwmIGNoYW5uZWwpCiB7CiAgICAgcmV0dXJuIHsgZG9jdW1lbnQs
IFsmY2hhbm5lbF0oYXV0byYgc3RyaW5nKSB7CiAgICAgICAgIGF1dG8gYnl0ZUxlbmd0aCA9IHN0
cmluZy5zaXplSW5CeXRlcygpOworICAgICAgICBjaGFubmVsLm5vdGlmeVNlbmRGcmFtZShXZWJT
b2NrZXRGcmFtZTo6T3BDb2RlOjpPcENvZGVUZXh0LCBzdHJpbmcudXRmOCgpLmRhdGEoKSwgYnl0
ZUxlbmd0aCk7CiAgICAgICAgIGNoYW5uZWwuc2VuZE1lc3NhZ2UoTWVzc2FnZXM6Ok5ldHdvcmtT
b2NrZXRDaGFubmVsOjpTZW5kU3RyaW5nIHsgc3RyaW5nIH0sIGJ5dGVMZW5ndGgpOwogICAgIH0s
IFsmY2hhbm5lbF0oY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IGJ5dGVMZW5ndGgpIHsKKyAgICAg
ICAgY2hhbm5lbC5ub3RpZnlTZW5kRnJhbWUoV2ViU29ja2V0RnJhbWU6Ok9wQ29kZTo6T3BDb2Rl
QmluYXJ5LCBkYXRhLCBieXRlTGVuZ3RoKTsKICAgICAgICAgY2hhbm5lbC5zZW5kTWVzc2FnZShN
ZXNzYWdlczo6TmV0d29ya1NvY2tldENoYW5uZWw6OlNlbmREYXRhIHsgSVBDOjpEYXRhUmVmZXJl
bmNlIHsgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oZGF0YSksIGJ5dGVMZW5ndGgg
fSB9LCBieXRlTGVuZ3RoKTsKICAgICB9LCBbJmNoYW5uZWxdKGF1dG8gZXJyb3JDb2RlKSB7CiAg
ICAgICAgIGNoYW5uZWwuZmFpbChtYWtlU3RyaW5nKCJGYWlsZWQgdG8gbG9hZCBCbG9iOiBlcnJv
ciBjb2RlID0gIiwgZXJyb3JDb2RlKSk7CkBAIC02NSw2ICs3NCw3IEBAIFdlYlNvY2tldENoYW5u
ZWw6OldlYlNvY2tldENoYW5uZWwoRG9jdW1lbnQmIGRvY3VtZW50LCBXZWJTb2NrZXRDaGFubmVs
Q2xpZW50JiBjCiAgICAgLCAgbV9pZGVudGlmaWVyKFdlYlNvY2tldElkZW50aWZpZXI6OmdlbmVy
YXRlKCkpCiAgICAgLCBtX2NsaWVudChtYWtlV2Vha1B0cihjbGllbnQpKQogICAgICwgbV9tZXNz
YWdlUXVldWUoY3JlYXRlTWVzc2FnZVF1ZXVlKGRvY3VtZW50LCAqdGhpcykpCisgICAgLCBtX2lu
c3BlY3Rvcihkb2N1bWVudCkKIHsKIH0KIApAQCAtMTA0LDYgKzExNCwxMCBAQCBXZWJTb2NrZXRD
aGFubmVsOjpDb25uZWN0U3RhdHVzIFdlYlNvY2tldENoYW5uZWw6OmNvbm5lY3QoY29uc3QgVVJM
JiB1cmwsIGNvbnN0CiAgICAgaWYgKHJlcXVlc3QtPnVybCgpICE9IHVybCAmJiBtX2NsaWVudCkK
ICAgICAgICAgbV9jbGllbnQtPmRpZFVwZ3JhZGVVUkwoKTsKIAorICAgIG1faW5zcGVjdG9yLmRp
ZENyZWF0ZVdlYlNvY2tldChtX2RvY3VtZW50LmdldCgpLCB1cmwpOworICAgIC8vIEZJWE1FOiBH
ZXQgdGhlIHJlYWwgb25lIGZyb20gbmV0d29ya2luZyBwcm9jZXNzCisgICAgbV9pbnNwZWN0b3Iu
d2lsbFNlbmRXZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0KG1fZG9jdW1lbnQuZ2V0KCksICpyZXF1
ZXN0KTsKKwogICAgIE1lc3NhZ2VTZW5kZXI6OnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpDcmVhdGVTb2NrZXRDaGFubmVsIHsgKnJlcXVlc3QsIHByb3RvY29s
LCBtX2lkZW50aWZpZXIgfSk7CiAgICAgcmV0dXJuIENvbm5lY3RTdGF0dXM6Ok9LOwogfQpAQCAt
MjA5LDYgKzIyMyw5IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZGlzY29ubmVjdCgpCiAgICAg
bV9wZW5kaW5nVGFza3MuY2xlYXIoKTsKICAgICBtX21lc3NhZ2VRdWV1ZS5jbGVhcigpOwogCisK
KyAgICBtX2luc3BlY3Rvci5kaWRDbG9zZVdlYlNvY2tldChtX2RvY3VtZW50LmdldCgpKTsKKwog
ICAgIE1lc3NhZ2VTZW5kZXI6OnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtTb2NrZXRDaGFubmVsOjpD
bG9zZSB7IDAsIHsgfSB9KTsKIH0KIApAQCAtMjI3LDExICsyNDQsMzIgQEAgdm9pZCBXZWJTb2Nr
ZXRDaGFubmVsOjpkaWRDb25uZWN0KFN0cmluZyYmIHN1YnByb3RvY29sLCBTdHJpbmcmJiBleHRl
bnNpb25zKQogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgLy8gRklYTUU6IEdldCB0aGUg
cmVhbCBvbmUgZnJvbSBuZXR3b3JraW5nIHByb2Nlc3MKKyAgICBtX2luc3BlY3Rvci5kaWRSZWNl
aXZlV2ViU29ja2V0SGFuZHNoYWtlUmVzcG9uc2UobV9kb2N1bWVudC5nZXQoKSwgeyB9KTsKKwog
ICAgIG1fc3VicHJvdG9jb2wgPSBXVEZNb3ZlKHN1YnByb3RvY29sKTsKICAgICBtX2V4dGVuc2lv
bnMgPSBXVEZNb3ZlKGV4dGVuc2lvbnMpOwogICAgIG1fY2xpZW50LT5kaWRDb25uZWN0KCk7CiB9
CiAKK3N0YXRpYyBpbmxpbmUgV2ViU29ja2V0RnJhbWUgY3JlYXRlV2ViU29ja2V0RnJhbWVGb3JX
ZWJJbnNwZWN0b3IoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IGxlbmd0aCwgV2ViU29ja2V0RnJh
bWU6Ok9wQ29kZSBvcENvZGUpCit7CisgICAgLy8gVGhpcyBpcyBhbiBhcHByb3hpbWF0aW9uIHNp
bmNlIGZyYW1lcyBjYW4gYmUgbWVyZ2VkIG9uIGEgc2luZ2xlIG1lc3NhZ2UuCisgICAgV2ViU29j
a2V0RnJhbWUgZnJhbWU7CisgICAgZnJhbWUub3BDb2RlID0gb3BDb2RlOworICAgIGZyYW1lLm1h
c2tlZCA9IGZhbHNlOworICAgIGZyYW1lLnBheWxvYWQgPSBkYXRhOworICAgIGZyYW1lLnBheWxv
YWRMZW5ndGggPSBsZW5ndGg7CisKKyAgICAvLyBXZWJJbnNwZWN0b3IgZG9lcyBub3QgdXNlIHRo
ZW0uCisgICAgZnJhbWUuZmluYWwgPSBmYWxzZTsKKyAgICBmcmFtZS5jb21wcmVzcyA9IGZhbHNl
OworICAgIGZyYW1lLnJlc2VydmVkMiA9IGZhbHNlOworICAgIGZyYW1lLnJlc2VydmVkMyA9IGZh
bHNlOworCisgICAgcmV0dXJuIGZyYW1lOworfQorCiB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRp
ZFJlY2VpdmVUZXh0KFN0cmluZyYmIG1lc3NhZ2UpCiB7CiAgICAgaWYgKG1faXNDbG9zaW5nKQpA
QCAtMjQ3LDYgKzI4NSw4IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZGlkUmVjZWl2ZVRleHQo
U3RyaW5nJiYgbWVzc2FnZSkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIG1faW5zcGVj
dG9yLmRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZShtX2RvY3VtZW50LmdldCgpLCBjcmVhdGVXZWJT
b2NrZXRGcmFtZUZvcldlYkluc3BlY3RvcihtZXNzYWdlLnV0ZjgoKS5kYXRhKCksIG1lc3NhZ2Uu
dXRmOCgpLmxlbmd0aCgpLCBXZWJTb2NrZXRGcmFtZTo6T3BDb2RlOjpPcENvZGVUZXh0KSk7CisK
ICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1lc3NhZ2UobWVzc2FnZSk7CiB9CiAKQEAgLTI2NSw2
ICszMDUsOSBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRpZFJlY2VpdmVCaW5hcnlEYXRhKElQ
Qzo6RGF0YVJlZmVyZW5jZSYmIGRhdGEpCiAgICAgICAgIH0pOwogICAgICAgICByZXR1cm47CiAg
ICAgfQorCisgICAgbV9pbnNwZWN0b3IuZGlkUmVjZWl2ZVdlYlNvY2tldEZyYW1lKG1fZG9jdW1l
bnQuZ2V0KCksIGNyZWF0ZVdlYlNvY2tldEZyYW1lRm9yV2ViSW5zcGVjdG9yKHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEuZGF0YSgpKSwgZGF0YS5zaXplKCksIFdlYlNvY2tldEZy
YW1lOjpPcENvZGU6Ok9wQ29kZUJpbmFyeSkpOworCiAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVC
aW5hcnlEYXRhKGRhdGEudmVjdG9yKCkpOwogfQogCkBAIC0yODAsNiArMzIzLDggQEAgdm9pZCBX
ZWJTb2NrZXRDaGFubmVsOjpkaWRDbG9zZSh1bnNpZ25lZCBzaG9ydCBjb2RlLCBTdHJpbmcmJiBy
ZWFzb24pCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBtX2luc3BlY3Rvci5kaWRDbG9z
ZVdlYlNvY2tldChtX2RvY3VtZW50LmdldCgpKTsKKwogICAgIGlmIChjb2RlID09IFdlYkNvcmU6
OldlYlNvY2tldENoYW5uZWw6OkNsb3NlRXZlbnRDb2RlTm9ybWFsQ2xvc3VyZSkKICAgICAgICAg
bV9jbGllbnQtPmRpZFN0YXJ0Q2xvc2luZ0hhbmRzaGFrZSgpOwogCkBAIC0yOTgsNyArMzQzLDgg
QEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpkaWRSZWNlaXZlTWVzc2FnZUVycm9yKFN0cmluZyYm
IGVycm9yTWVzc2FnZSkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIC8vIEZJWE1FOiBk
byBzb21ldGhpbmcgd2l0aCBlcnJvck1lc3NhZ2UuCisgICAgbV9pbnNwZWN0b3IuZGlkUmVjZWl2
ZVdlYlNvY2tldEZyYW1lRXJyb3IobV9kb2N1bWVudC5nZXQoKSwgZXJyb3JNZXNzYWdlKTsKKwog
ICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZUVycm9yKCk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuaAppbmRleCAz
MDY4YzUyODBiMzMzYTQxYTg4ZTcwZmEyNDQ0ZGEzNGU3YjJjM2M2Li4wMTQ1MWIwNzM3YzE5MzUz
Y2NjNTg0YjFmMjkxNjkyYzU5ZDlmNDI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5oCkBAIC0zMCw2ICszMCw4IEBACiAjaW5j
bHVkZSAiV2ViU29ja2V0SWRlbnRpZmllci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1Nl
bmRRdWV1ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYlNvY2tldENoYW5uZWxJbnNwZWN0b3IuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL1dlYlNvY2tldEZyYW1lLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4K
IAogbmFtZXNwYWNlIElQQyB7CkBAIC03NSw2ICs3Nyw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBy
ZWZUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbCgpIGZpbmFsIHsgcmVmKCk7IH0KICAgICB2b2lk
IGRlcmVmVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwoKSBmaW5hbCB7IGRlcmVmKCk7IH0KIAor
ICAgIHZvaWQgbm90aWZ5U2VuZEZyYW1lKFdlYkNvcmU6OldlYlNvY2tldEZyYW1lOjpPcENvZGUs
IGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBsZW5ndGgpOworCiAgICAgLy8gTWVzc2FnZSByZWNl
aXZlcnMKICAgICB2b2lkIGRpZENvbm5lY3QoU3RyaW5nJiYgc3VicHJvdG9jb2wsIFN0cmluZyYm
IGV4dGVuc2lvbnMpOwogICAgIHZvaWQgZGlkUmVjZWl2ZVRleHQoU3RyaW5nJiYpOwpAQCAtMTAx
LDYgKzEwNSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzU3VzcGVuZGVkIHsgZmFsc2UgfTsK
ICAgICBEZXF1ZTxGdW5jdGlvbjx2b2lkKCk+PiBtX3BlbmRpbmdUYXNrczsKICAgICBXZWJDb3Jl
OjpOZXR3b3JrU2VuZFF1ZXVlIG1fbWVzc2FnZVF1ZXVlOworICAgIFdlYkNvcmU6OldlYlNvY2tl
dENoYW5uZWxJbnNwZWN0b3IgbV9pbnNwZWN0b3I7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390936</attachid>
            <date>2020-02-17 10:41:50 -0800</date>
            <delta_ts>2020-02-17 12:46:48 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-207794-20200217104150.patch</filename>
            <type>text/plain</type>
            <size>22593</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2NzM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTQ2NTRjZDY2NjZhM2Iy
NzIzNjBjMzFkMWQ0MDA0NjBmNjA2OTVhNy4uMzFjOGI0NTdiNWE1MmU1MDk3NzAyNGExN2U4OWRl
MDRjZTljYTFmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIwLTAyLTE3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgV2ViSW5zcGVjdG9y
IHN1cHBvcnQgdG8gV2ViS2l0OjpXZWJTb2NrZXRDaGFubmVsCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDc3OTQKKworICAgICAgICBSZXZpZXdlZCBi
eSBEYXJpbiBBZGxlci4KKworICAgICAgICBBZGQgYSB3cmFwcGVyIGFyb3VuZCBJbnNwZWN0b3Ig
Zm9yIHVzaW5nIGl0IGluIFdlYkluc3BlY3Rvci4KKyAgICAgICAgVGhpcyBhbGxvd3MgZ2V0dGlu
ZyBwcmVsaW1pbmFyeSBzdXBwb3J0IG9mIFdlYkluc3BlY3RvciBmb3IgdGhlIG5ldyBXZWJTb2Nr
ZXQgcGF0aC4KKworICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVs
SW5zcGVjdG9yLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVs
SW5zcGVjdG9yOjpXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6
OldlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OmRpZENyZWF0ZVdlYlNvY2tldCk6CisgICAgICAg
IChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjp3aWxsU2VuZFdlYlNvY2tldEhh
bmRzaGFrZVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbEluc3Bl
Y3Rvcjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNlKToKKyAgICAgICAgKFdl
YkNvcmU6OldlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OmRpZENsb3NlV2ViU29ja2V0KToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OmRpZFJlY2VpdmVXZWJT
b2NrZXRGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9y
OjpkaWRTZW5kV2ViU29ja2V0RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hh
bm5lbEluc3BlY3Rvcjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEZyYW1lRXJyb3IpOgorICAgICAgICAq
IE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yLmg6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRGcmFtZS5oOgorICAgICAgICAq
IFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKwogMjAyMC0wMi0xNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAg
ICAgICAgRG8gbm90IHNlbmQgdGhlIGNsaWVudCBVUkwgdG8gbmV0d29yayBwcm9jZXNzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IGRlZDMzZjU5NTNmZjFkNTE5YmExZWFmMjIzNzVmNzQ5M2FkMmMyY2UuLmI1MTFmYzIx
MWZjMGU3ZTZlOWU2OGRiZGUzOWNjZDA5ZDAxY2I4NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkg
QEAKKzIwMjAtMDItMTcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAg
ICAgIEFkZCBXZWJJbnNwZWN0b3Igc3VwcG9ydCB0byBXZWJLaXQ6OldlYlNvY2tldENoYW5uZWwK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzc5NAor
CisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIENhbGwgV2ViSW5z
cGVjdG9yIGhvb2tzIHdoZXJldmVyIG5lZWRlZC4KKyAgICAgICAgV2UgZG8gbm90IGhhdmUgYWNj
ZXNzIHRvIGZyYW1lcyBzbyB3ZSBtYWtlIGFzIGlmIGEgbWVzc2FnZSBpcyBwYXJ0IG9mIG9uZSBm
cmFtZS4KKyAgICAgICAgV2UgZG8gbm90IGhhdmUgeWV0IGEgcmVzcG9uc2Ugc28gcHJvdmlkZSBh
biBlbXB0eSBvbmUgYXMgd2VsbC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJT
b2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6bm90
aWZ5U2VuZEZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRl
TWVzc2FnZVF1ZXVlKToKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6V2ViU29j
a2V0Q2hhbm5lbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldENoYW5uZWw6OmNvbm5lY3Qp
OgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRDaGFubmVsOjpzZW5kTWVzc2FnZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlNvY2tldENoYW5uZWw6OmRpc2Nvbm5lY3QpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTb2NrZXRDaGFubmVsOjpkaWRDb25uZWN0KToKKyAgICAgICAgKFdlYktpdDo6Y3Jl
YXRlV2ViU29ja2V0RnJhbWVGb3JXZWJJbnNwZWN0b3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJT
b2NrZXRDaGFubmVsOjpkaWRSZWNlaXZlVGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tl
dENoYW5uZWw6OmRpZFJlY2VpdmVCaW5hcnlEYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViU29j
a2V0Q2hhbm5lbDo6ZGlkQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRDaGFubmVs
OjpkaWRSZWNlaXZlTWVzc2FnZUVycm9yKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsv
V2ViU29ja2V0Q2hhbm5lbC5oOgorCiAyMDIwLTAyLTE3ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KIAogICAgICAgICBEbyBub3Qgc2VuZCB0aGUgY2xpZW50IFVSTCB0byBuZXR3
b3JrIHByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IGViNDQzMWRkZDcxOWY4ZDFmN2NiNzQ3
M2YyMmY1YjI1Mzc3ODUzMGMuLmY0ODMyYWE3MTYzNjc4NTExZDg2YTQ5NDIwNzMzNWQ1N2VkZjE2
MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTU0LDYgKzE1NCw3IEBAIHNldChXZWJDb3JlX1BS
SVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBNb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWwuaAogICAgIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFu
bmVsLmgKICAgICBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbENsaWVudC5oCisg
ICAgTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWxJbnNwZWN0b3IuaAogICAgIE1v
ZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXREZWZsYXRlRnJhbWVyLmgKICAgICBNb2R1bGVzL3dl
YnNvY2tldHMvV2ViU29ja2V0RGVmbGF0ZXIuaAogICAgIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJT
b2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kZmZjOGJmNmU5MmYzYjQ4YmZkNzk2MGQxNjBlZmQ0NmUzZWMwYzA2Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tl
dENoYW5uZWxJbnNwZWN0b3IuY3BwCkBAIC0wLDAgKzEsOTcgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvci5oIgor
CisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uaCIKKyNpbmNsdWRlICJQYWdlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV2ViU29j
a2V0Q2hhbm5lbEluc3BlY3Rvcjo6V2ViU29ja2V0Q2hhbm5lbEluc3BlY3RvcihEb2N1bWVudCYg
ZG9jdW1lbnQpCit7CisgICAgaWYgKGF1dG8qIHBhZ2UgPSBkb2N1bWVudC5wYWdlKCkpCisgICAg
ICAgIG1fcHJvZ3Jlc3NJZGVudGlmaWVyID0gcGFnZS0+cHJvZ3Jlc3MoKS5jcmVhdGVVbmlxdWVJ
ZGVudGlmaWVyKCk7Cit9CisKK3ZvaWQgV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkQ3Jl
YXRlV2ViU29ja2V0KERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgVVJMJiB1cmwpCit7CisgICAg
aWYgKCFtX3Byb2dyZXNzSWRlbnRpZmllciB8fCAhZG9jdW1lbnQpCisgICAgICAgIHJldHVybjsK
KworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2ViU29ja2V0KGRvY3Vt
ZW50LCBtX3Byb2dyZXNzSWRlbnRpZmllciwgdXJsKTsKK30KKwordm9pZCBXZWJTb2NrZXRDaGFu
bmVsSW5zcGVjdG9yOjp3aWxsU2VuZFdlYlNvY2tldEhhbmRzaGFrZVJlcXVlc3QoRG9jdW1lbnQq
IGRvY3VtZW50LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgaWYgKCFt
X3Byb2dyZXNzSWRlbnRpZmllciB8fCAhZG9jdW1lbnQpCisgICAgICAgIHJldHVybjsKKworICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFNlbmRXZWJTb2NrZXRIYW5kc2hha2VSZXF1
ZXN0KGRvY3VtZW50LCBtX3Byb2dyZXNzSWRlbnRpZmllciwgcmVxdWVzdCk7Cit9CisKK3ZvaWQg
V2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEhhbmRzaGFrZVJl
c3BvbnNlKERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UpCit7CisgICAgaWYgKCFtX3Byb2dyZXNzSWRlbnRpZmllciB8fCAhZG9jdW1lbnQpCisgICAg
ICAgIHJldHVybjsKKworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVdl
YlNvY2tldEhhbmRzaGFrZVJlc3BvbnNlKGRvY3VtZW50LCBtX3Byb2dyZXNzSWRlbnRpZmllciwg
cmVzcG9uc2UpOworfQorCit2b2lkIFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OmRpZENsb3Nl
V2ViU29ja2V0KERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBpZiAoIW1fcHJvZ3Jlc3NJZGVu
dGlmaWVyIHx8ICFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpkaWRDbG9zZVdlYlNvY2tldChkb2N1bWVudCwgbV9wcm9ncmVzc0lkZW50
aWZpZXIpOworfQorCit2b2lkIFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OmRpZFJlY2VpdmVX
ZWJTb2NrZXRGcmFtZShEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IFdlYlNvY2tldEZyYW1lJiBm
cmFtZSkKK3sKKyAgICBpZiAoIW1fcHJvZ3Jlc3NJZGVudGlmaWVyIHx8ICFkb2N1bWVudCkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZl
V2ViU29ja2V0RnJhbWUoZG9jdW1lbnQsIG1fcHJvZ3Jlc3NJZGVudGlmaWVyLCBmcmFtZSk7Cit9
CisKK3ZvaWQgV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkU2VuZFdlYlNvY2tldEZyYW1l
KERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgV2ViU29ja2V0RnJhbWUmIGZyYW1lKQoreworICAg
IGlmICghbV9wcm9ncmVzc0lkZW50aWZpZXIgfHwgIWRvY3VtZW50KQorICAgICAgICByZXR1cm47
CisKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFNlbmRXZWJTb2NrZXRGcmFtZShk
b2N1bWVudCwgbV9wcm9ncmVzc0lkZW50aWZpZXIsIGZyYW1lKTsKK30KKwordm9pZCBXZWJTb2Nr
ZXRDaGFubmVsSW5zcGVjdG9yOjpkaWRSZWNlaXZlV2ViU29ja2V0RnJhbWVFcnJvcihEb2N1bWVu
dCogZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKQoreworICAgIGlmICghbV9w
cm9ncmVzc0lkZW50aWZpZXIgfHwgIWRvY3VtZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZUVycm9yKGRv
Y3VtZW50LCBtX3Byb2dyZXNzSWRlbnRpZmllciwgZXJyb3JNZXNzYWdlKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJz
b2NrZXRzL1dlYlNvY2tldENoYW5uZWxJbnNwZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmMy
NTNhMTdkZWNmYTljYjk4ZGQyNDFkNzgyYmRlZDMwOTkyNzc0ZgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsSW5zcGVj
dG9yLmgKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEb2N1
bWVudDsKK2NsYXNzIFJlc291cmNlUmVxdWVzdDsKK2NsYXNzIFJlc291cmNlUmVzcG9uc2U7Citz
dHJ1Y3QgV2ViU29ja2V0RnJhbWU7CisKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIFdlYlNvY2tldENo
YW5uZWxJbnNwZWN0b3IgeworcHVibGljOgorICAgIGV4cGxpY2l0IFdlYlNvY2tldENoYW5uZWxJ
bnNwZWN0b3IoRG9jdW1lbnQmKTsKKworICAgIHZvaWQgZGlkQ3JlYXRlV2ViU29ja2V0KERvY3Vt
ZW50KiwgY29uc3QgVVJMJik7CisgICAgdm9pZCB3aWxsU2VuZFdlYlNvY2tldEhhbmRzaGFrZVJl
cXVlc3QoRG9jdW1lbnQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVXZWJTb2NrZXRIYW5kc2hha2VSZXNwb25zZShEb2N1bWVudCosIGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmKTsKKyAgICB2b2lkIGRpZENsb3NlV2ViU29ja2V0KERvY3VtZW50Kik7CisgICAg
dm9pZCBkaWRSZWNlaXZlV2ViU29ja2V0RnJhbWUoRG9jdW1lbnQqLCBjb25zdCBXZWJTb2NrZXRG
cmFtZSYpOworICAgIHZvaWQgZGlkU2VuZFdlYlNvY2tldEZyYW1lKERvY3VtZW50KiwgY29uc3Qg
V2ViU29ja2V0RnJhbWUmKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZUVycm9y
KERvY3VtZW50KiwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOworCitwcml2YXRlOgorICAg
IHVuc2lnbmVkIGxvbmcgbV9wcm9ncmVzc0lkZW50aWZpZXIgeyAwIH07Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNv
Y2tldHMvV2ViU29ja2V0RnJhbWUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0
cy9XZWJTb2NrZXRGcmFtZS5oCmluZGV4IGE2NDBmMzI0YWYwYzhmYWYyZmEwZWNjOTc2YzNlODdl
Nzk4ODkwNjUuLmRiMTYwZGNmYjFlZTU5NTVhOWQ1N2ZkYzg3N2I0Zjk0NzNhNTczYTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRGcmFtZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRGcmFtZS5o
CkBAIC01OCw3ICs1OCw3IEBAIHN0cnVjdCBXZWJTb2NrZXRGcmFtZSB7CiAgICAgc3RhdGljIGJv
b2wgbmVlZHNFeHRlbmRlZExlbmd0aEZpZWxkKHNpemVfdCBwYXlsb2FkTGVuZ3RoKTsKICAgICBz
dGF0aWMgUGFyc2VGcmFtZVJlc3VsdCBwYXJzZUZyYW1lKGNoYXIqIGRhdGEsIHNpemVfdCBkYXRh
TGVuZ3RoLCBXZWJTb2NrZXRGcmFtZSYsIGNvbnN0IGNoYXIqJiBmcmFtZUVuZCwgU3RyaW5nJiBl
cnJvclN0cmluZyk7IC8vIE1heSBtb2RpZnkgcGFydCBvZiBkYXRhIHRvIHVubWFzayB0aGUgZnJh
bWUuCiAKLSAgICBXZWJTb2NrZXRGcmFtZShPcENvZGUgPSBPcENvZGVJbnZhbGlkLCBib29sIGZp
bmFsID0gZmFsc2UsIGJvb2wgY29tcHJlc3MgPSBmYWxzZSwgYm9vbCBtYXNrZWQgPSBmYWxzZSwg
Y29uc3QgY2hhciogcGF5bG9hZCA9IG51bGxwdHIsIHNpemVfdCBwYXlsb2FkTGVuZ3RoID0gMCk7
CisgICAgV0VCQ09SRV9FWFBPUlQgV2ViU29ja2V0RnJhbWUoT3BDb2RlID0gT3BDb2RlSW52YWxp
ZCwgYm9vbCBmaW5hbCA9IGZhbHNlLCBib29sIGNvbXByZXNzID0gZmFsc2UsIGJvb2wgbWFza2Vk
ID0gZmFsc2UsIGNvbnN0IGNoYXIqIHBheWxvYWQgPSBudWxscHRyLCBzaXplX3QgcGF5bG9hZExl
bmd0aCA9IDApOwogICAgIHZvaWQgbWFrZUZyYW1lRGF0YShWZWN0b3I8Y2hhcj4mIGZyYW1lRGF0
YSk7CiAKICAgICBPcENvZGUgb3BDb2RlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCBiZDYwZmJhZTIxODM2
MGJhM2I5NGZjNTA1YThkMDZjMGVmYzFjM2QwLi5lNGRjZTM5Y2UwM2E5OTI5OThkOTk0MTFjZGQw
ZTU3YTczOTU4OTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMzE2LDYgKzMxNiw3IEBAIE1vZHVsZXMv
d2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKIE1vZHVsZXMvd2Vic29j
a2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuY3BwCiBNb2R1bGVz
L3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENo
YW5uZWwuY3BwCitNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvci5j
cHAKIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXREZWZsYXRlRnJhbWVyLmNwcAogTW9kdWxl
cy93ZWJzb2NrZXRzL1dlYlNvY2tldERlZmxhdGVyLmNwcAogTW9kdWxlcy93ZWJzb2NrZXRzL1dl
YlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggY2RhYWQyMzY5MDQxZjNkMzJlMjIx
MDUxNmYxMDc4YmZjYjg0MTcyNi4uMjI2NmZjODFmMWUwZjQ1Y2Q0MjQ2OGY5YzI3MWJmOTIyYmI3
MmFlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTAyNyw2ICsxMDI3LDcgQEAKIAkJM0ZGODEzQTcxREJBODY0MDAwOUJGMDAx
IC8qIFBvaW50ZXJMb2NrQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNUNGQzQzNEYxOTI0MDZBOTAwQTBEM0I1IC8qIFBvaW50ZXJMb2Nr
Q29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTQxMDc5MDhDMUZDM0YwMzMwMDYxQjI3QSAvKiBDbGllbnRPcmlnaW4uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMDc5MDhBMUZDM0U0RjIw
MDYxQjI3QSAvKiBDbGllbnRPcmlnaW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk0MTBFNDQ2MTIzNDM3M0U5MDAwMTczRDQgLyogTGliV2ViUlRD
U29ja2V0SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDEwRTQ0NUYyMzQzNzNBRDAwMDE3M0Q0IC8qIExpYldlYlJUQ1NvY2tldElkZW50
aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQk0MTEwMEM4MDIzRjc0NTgzMDAxQkMzM0IgLyogV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDExMDBDN0Uy
M0Y3Mzk4MjAwMUJDMzNCIC8qIFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3IuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTEwM0FBQzFFMzk3OTEw
MDA3NjlGMDMgLyogUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTEwM0FBODFFMzk3OTBBMDA3NjlGMDMg
LyogUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmggKi87IH07CiAJCTQxMTAzQUFDMUUzOTc5
MTAwMDc2OUYxNCAvKiBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDExMDNBQTgxRTM5NzkwQTAw
NzY5RjE0IC8qIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNvY29hLmggKi87IH07CiAJCTQx
MTAzQUFEMUUzOTc5MTAwMDc2OUYwMyAvKiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMTAzQUE5MUUz
OTc5MEEwMDc2OUYwMyAvKiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuaCAqLzsgfTsKQEAg
LTcyMjUsNiArNzIyNiw4IEBACiAJCTQxMDkzODJDMjM0Nzg1MEUwMDk0MjhCQSAvKiBKU0Fib3J0
U2lnbmFsQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQWJvcnRTaWduYWxDdXN0b20u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTBCN0U3MTEwNDVGQUIwMDBEODIy
NEYgLyogSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0MTBFNDQ1RjIzNDM3M0FEMDAwMTczRDQgLyogTGliV2ViUlRDU29ja2V0SWRl
bnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBMaWJXZWJSVENTb2Nr
ZXRJZGVudGlmaWVyLmg7IHBhdGggPSBsaWJ3ZWJydGMvTGliV2ViUlRDU29ja2V0SWRlbnRpZmll
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTEwMEM3RTIzRjczOTgyMDAxQkMz
M0IgLyogV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTQxMTAwQzdGMjNGNzNBNTYwMDFCQzMzQiAvKiBXZWJTb2NrZXRDaGFubmVs
SW5zcGVjdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNv
Y2tldENoYW5uZWxJbnNwZWN0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MTEwM0FBNzFFMzk3OTBBMDA3NjlGMDMgLyogUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlYWx0aW1lT3V0Z29pbmdB
dWRpb1NvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMTAzQUE3MUUz
OTc5MEEwMDc2OUYxNCAvKiBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWFsdGltZU91dGdvaW5nQXVkaW9T
b3VyY2VDb2NvYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMTAzQUE4MUUz
OTc5MEEwMDc2OUYwMyAvKiBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMjQ2MCw2ICsyMjQ2Myw4IEBACiAJCQkJOTdB
QUJEMDIxNEZBMDlENTAwNzQ1N0FFIC8qIFdlYlNvY2tldENoYW5uZWwuY3BwICovLAogCQkJCTk3
QUFCRDAzMTRGQTA5RDUwMDc0NTdBRSAvKiBXZWJTb2NrZXRDaGFubmVsLmggKi8sCiAJCQkJOTdB
QUJEMDQxNEZBMDlENTAwNzQ1N0FFIC8qIFdlYlNvY2tldENoYW5uZWxDbGllbnQuaCAqLywKKwkJ
CQk0MTEwMEM3RjIzRjczQTU2MDAxQkMzM0IgLyogV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvci5j
cHAgKi8sCisJCQkJNDExMDBDN0UyM0Y3Mzk4MjAwMUJDMzNCIC8qIFdlYlNvY2tldENoYW5uZWxJ
bnNwZWN0b3IuaCAqLywKIAkJCQk0QTM4QkY0RTE0RkUxQzA5MDA2MTI1MTIgLyogV2ViU29ja2V0
RGVmbGF0ZUZyYW1lci5jcHAgKi8sCiAJCQkJNEEzOEJGNEYxNEZFMUMwOTAwNjEyNTEyIC8qIFdl
YlNvY2tldERlZmxhdGVGcmFtZXIuaCAqLywKIAkJCQk5N0FBQkQwNTE0RkEwOUQ1MDA3NDU3QUUg
LyogV2ViU29ja2V0RGVmbGF0ZXIuY3BwICovLApAQCAtMzIzMDYsNiArMzIzMTEsNyBAQAogCQkJ
CTUxMEQ0QTM3MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTUxMEQ0QTM4MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5k
bGVDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxQUJBRTFFMTAzQzE5MTMwMDhDNTI2MCAv
KiBTb2NrZXRTdHJlYW1IYW5kbGVJbXBsLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTEwMEM4MDIz
Rjc0NTgzMDAxQkMzM0IgLyogV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJODRBODFGM0UwRkM3REZGMDAwOTU1MzAwIC8qIFNvdXJjZUFscGhhLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDRDNBNDk2MjE3QTlEMDFCMDAyNzRFNDIgLyogU291cmNlQnVmZmVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDRDNBNDk2NTE3QTlEMDFCMDAyNzRFNDIgLyogU291cmNlQnVm
ZmVyTGlzdC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwCmluZGV4IGIxMzk3YTIzZDhmMzdlYjM2
NTZkZGE5NzI2YjA1ZjJlOTY4YTY5ZTYuLjkyMTVjNTUzZjFlNDNmNzA3MWMyMTBmYmE4ZDljOWIw
OWFlNjJiYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYlNvY2tldENoYW5uZWwuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiV2ViUHJv
Y2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQmxvYi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRG9j
dW1lbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dl
YlNvY2tldENoYW5uZWwuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dlYlNvY2tldENoYW5uZWxDbGll
bnQuaD4KICNpbmNsdWRlIDx3dGYvQ2hlY2tlZEFyaXRobWV0aWMuaD4KQEAgLTQ3LDEyICs0OCwy
MCBAQCBSZWY8V2ViU29ja2V0Q2hhbm5lbD4gV2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKERvY3Vt
ZW50JiBkb2N1bWVudCwgV2ViU29ja2V0Q2hhbgogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdl
YlNvY2tldENoYW5uZWwoZG9jdW1lbnQsIGNsaWVudCkpOwogfQogCit2b2lkIFdlYlNvY2tldENo
YW5uZWw6Om5vdGlmeVNlbmRGcmFtZShXZWJTb2NrZXRGcmFtZTo6T3BDb2RlIG9wQ29kZSwgY29u
c3QgY2hhciogZGF0YSwgc2l6ZV90IGxlbmd0aCkKK3sKKyAgICBXZWJTb2NrZXRGcmFtZSBmcmFt
ZShvcENvZGUsIHRydWUsIGZhbHNlLCB0cnVlLCBkYXRhLCBsZW5ndGgpOworICAgIG1faW5zcGVj
dG9yLmRpZFNlbmRXZWJTb2NrZXRGcmFtZShtX2RvY3VtZW50LmdldCgpLCBmcmFtZSk7Cit9CisK
IE5ldHdvcmtTZW5kUXVldWUgV2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlTWVzc2FnZVF1ZXVlKERv
Y3VtZW50JiBkb2N1bWVudCwgV2ViU29ja2V0Q2hhbm5lbCYgY2hhbm5lbCkKIHsKICAgICByZXR1
cm4geyBkb2N1bWVudCwgWyZjaGFubmVsXShhdXRvJiBzdHJpbmcpIHsKICAgICAgICAgYXV0byBi
eXRlTGVuZ3RoID0gc3RyaW5nLnNpemVJbkJ5dGVzKCk7CisgICAgICAgIGNoYW5uZWwubm90aWZ5
U2VuZEZyYW1lKFdlYlNvY2tldEZyYW1lOjpPcENvZGU6Ok9wQ29kZVRleHQsIHN0cmluZy51dGY4
KCkuZGF0YSgpLCBieXRlTGVuZ3RoKTsKICAgICAgICAgY2hhbm5lbC5zZW5kTWVzc2FnZShNZXNz
YWdlczo6TmV0d29ya1NvY2tldENoYW5uZWw6OlNlbmRTdHJpbmcgeyBzdHJpbmcgfSwgYnl0ZUxl
bmd0aCk7CiAgICAgfSwgWyZjaGFubmVsXShjb25zdCBjaGFyKiBkYXRhLCBzaXplX3QgYnl0ZUxl
bmd0aCkgeworICAgICAgICBjaGFubmVsLm5vdGlmeVNlbmRGcmFtZShXZWJTb2NrZXRGcmFtZTo6
T3BDb2RlOjpPcENvZGVCaW5hcnksIGRhdGEsIGJ5dGVMZW5ndGgpOwogICAgICAgICBjaGFubmVs
LnNlbmRNZXNzYWdlKE1lc3NhZ2VzOjpOZXR3b3JrU29ja2V0Q2hhbm5lbDo6U2VuZERhdGEgeyBJ
UEM6OkRhdGFSZWZlcmVuY2UgeyByZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihkYXRh
KSwgYnl0ZUxlbmd0aCB9IH0sIGJ5dGVMZW5ndGgpOwogICAgIH0sIFsmY2hhbm5lbF0oYXV0byBl
cnJvckNvZGUpIHsKICAgICAgICAgY2hhbm5lbC5mYWlsKG1ha2VTdHJpbmcoIkZhaWxlZCB0byBs
b2FkIEJsb2I6IGVycm9yIGNvZGUgPSAiLCBlcnJvckNvZGUpKTsKQEAgLTY1LDYgKzc0LDcgQEAg
V2ViU29ja2V0Q2hhbm5lbDo6V2ViU29ja2V0Q2hhbm5lbChEb2N1bWVudCYgZG9jdW1lbnQsIFdl
YlNvY2tldENoYW5uZWxDbGllbnQmIGMKICAgICAsICBtX2lkZW50aWZpZXIoV2ViU29ja2V0SWRl
bnRpZmllcjo6Z2VuZXJhdGUoKSkKICAgICAsIG1fY2xpZW50KG1ha2VXZWFrUHRyKGNsaWVudCkp
CiAgICAgLCBtX21lc3NhZ2VRdWV1ZShjcmVhdGVNZXNzYWdlUXVldWUoZG9jdW1lbnQsICp0aGlz
KSkKKyAgICAsIG1faW5zcGVjdG9yKGRvY3VtZW50KQogewogfQogCkBAIC0xMDQsNiArMTE0LDEw
IEBAIFdlYlNvY2tldENoYW5uZWw6OkNvbm5lY3RTdGF0dXMgV2ViU29ja2V0Q2hhbm5lbDo6Y29u
bmVjdChjb25zdCBVUkwmIHVybCwgY29uc3QKICAgICBpZiAocmVxdWVzdC0+dXJsKCkgIT0gdXJs
ICYmIG1fY2xpZW50KQogICAgICAgICBtX2NsaWVudC0+ZGlkVXBncmFkZVVSTCgpOwogCisgICAg
bV9pbnNwZWN0b3IuZGlkQ3JlYXRlV2ViU29ja2V0KG1fZG9jdW1lbnQuZ2V0KCksIHVybCk7Cisg
ICAgLy8gRklYTUU6IEdldCB0aGUgcmVhbCByZXF1ZXN0IGZyb20gbmV0d29ya2luZyBwcm9jZXNz
CisgICAgbV9pbnNwZWN0b3Iud2lsbFNlbmRXZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0KG1fZG9j
dW1lbnQuZ2V0KCksICpyZXF1ZXN0KTsKKwogICAgIE1lc3NhZ2VTZW5kZXI6OnNlbmQoTWVzc2Fn
ZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDcmVhdGVTb2NrZXRDaGFubmVsIHsg
KnJlcXVlc3QsIHByb3RvY29sLCBtX2lkZW50aWZpZXIgfSk7CiAgICAgcmV0dXJuIENvbm5lY3RT
dGF0dXM6Ok9LOwogfQpAQCAtMjA5LDYgKzIyMyw5IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6
ZGlzY29ubmVjdCgpCiAgICAgbV9wZW5kaW5nVGFza3MuY2xlYXIoKTsKICAgICBtX21lc3NhZ2VR
dWV1ZS5jbGVhcigpOwogCisKKyAgICBtX2luc3BlY3Rvci5kaWRDbG9zZVdlYlNvY2tldChtX2Rv
Y3VtZW50LmdldCgpKTsKKwogICAgIE1lc3NhZ2VTZW5kZXI6OnNlbmQoTWVzc2FnZXM6Ok5ldHdv
cmtTb2NrZXRDaGFubmVsOjpDbG9zZSB7IDAsIHsgfSB9KTsKIH0KIApAQCAtMjI3LDExICsyNDQs
MzIgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpkaWRDb25uZWN0KFN0cmluZyYmIHN1YnByb3Rv
Y29sLCBTdHJpbmcmJiBleHRlbnNpb25zKQogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAg
Ly8gRklYTUU6IEdldCB0aGUgcmVhbCByZXNwb25zZSBmcm9tIG5ldHdvcmtpbmcgcHJvY2Vzcwor
ICAgIG1faW5zcGVjdG9yLmRpZFJlY2VpdmVXZWJTb2NrZXRIYW5kc2hha2VSZXNwb25zZShtX2Rv
Y3VtZW50LmdldCgpLCB7IH0pOworCiAgICAgbV9zdWJwcm90b2NvbCA9IFdURk1vdmUoc3VicHJv
dG9jb2wpOwogICAgIG1fZXh0ZW5zaW9ucyA9IFdURk1vdmUoZXh0ZW5zaW9ucyk7CiAgICAgbV9j
bGllbnQtPmRpZENvbm5lY3QoKTsKIH0KIAorc3RhdGljIGlubGluZSBXZWJTb2NrZXRGcmFtZSBj
cmVhdGVXZWJTb2NrZXRGcmFtZUZvcldlYkluc3BlY3Rvcihjb25zdCBjaGFyKiBkYXRhLCBzaXpl
X3QgbGVuZ3RoLCBXZWJTb2NrZXRGcmFtZTo6T3BDb2RlIG9wQ29kZSkKK3sKKyAgICAvLyBUaGlz
IGlzIGFuIGFwcHJveGltYXRpb24gc2luY2UgZnJhbWVzIGNhbiBiZSBtZXJnZWQgb24gYSBzaW5n
bGUgbWVzc2FnZS4KKyAgICBXZWJTb2NrZXRGcmFtZSBmcmFtZTsKKyAgICBmcmFtZS5vcENvZGUg
PSBvcENvZGU7CisgICAgZnJhbWUubWFza2VkID0gZmFsc2U7CisgICAgZnJhbWUucGF5bG9hZCA9
IGRhdGE7CisgICAgZnJhbWUucGF5bG9hZExlbmd0aCA9IGxlbmd0aDsKKworICAgIC8vIFdlYklu
c3BlY3RvciBkb2VzIG5vdCB1c2UgdGhlbS4KKyAgICBmcmFtZS5maW5hbCA9IGZhbHNlOworICAg
IGZyYW1lLmNvbXByZXNzID0gZmFsc2U7CisgICAgZnJhbWUucmVzZXJ2ZWQyID0gZmFsc2U7Cisg
ICAgZnJhbWUucmVzZXJ2ZWQzID0gZmFsc2U7CisKKyAgICByZXR1cm4gZnJhbWU7Cit9CisKIHZv
aWQgV2ViU29ja2V0Q2hhbm5lbDo6ZGlkUmVjZWl2ZVRleHQoU3RyaW5nJiYgbWVzc2FnZSkKIHsK
ICAgICBpZiAobV9pc0Nsb3NpbmcpCkBAIC0yNDcsNiArMjg1LDggQEAgdm9pZCBXZWJTb2NrZXRD
aGFubmVsOjpkaWRSZWNlaXZlVGV4dChTdHJpbmcmJiBtZXNzYWdlKQogICAgICAgICByZXR1cm47
CiAgICAgfQogCisgICAgbV9pbnNwZWN0b3IuZGlkUmVjZWl2ZVdlYlNvY2tldEZyYW1lKG1fZG9j
dW1lbnQuZ2V0KCksIGNyZWF0ZVdlYlNvY2tldEZyYW1lRm9yV2ViSW5zcGVjdG9yKG1lc3NhZ2Uu
dXRmOCgpLmRhdGEoKSwgbWVzc2FnZS51dGY4KCkubGVuZ3RoKCksIFdlYlNvY2tldEZyYW1lOjpP
cENvZGU6Ok9wQ29kZVRleHQpKTsKKwogICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZSht
ZXNzYWdlKTsKIH0KIApAQCAtMjY1LDYgKzMwNSw5IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6
ZGlkUmVjZWl2ZUJpbmFyeURhdGEoSVBDOjpEYXRhUmVmZXJlbmNlJiYgZGF0YSkKICAgICAgICAg
fSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisKKyAgICBtX2luc3BlY3Rvci5kaWRSZWNlaXZl
V2ViU29ja2V0RnJhbWUobV9kb2N1bWVudC5nZXQoKSwgY3JlYXRlV2ViU29ja2V0RnJhbWVGb3JX
ZWJJbnNwZWN0b3IocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZGF0YS5kYXRhKCkpLCBk
YXRhLnNpemUoKSwgV2ViU29ja2V0RnJhbWU6Ok9wQ29kZTo6T3BDb2RlQmluYXJ5KSk7CisKICAg
ICBtX2NsaWVudC0+ZGlkUmVjZWl2ZUJpbmFyeURhdGEoZGF0YS52ZWN0b3IoKSk7CiB9CiAKQEAg
LTI4MCw2ICszMjMsOCBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRpZENsb3NlKHVuc2lnbmVk
IHNob3J0IGNvZGUsIFN0cmluZyYmIHJlYXNvbikKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAor
ICAgIG1faW5zcGVjdG9yLmRpZENsb3NlV2ViU29ja2V0KG1fZG9jdW1lbnQuZ2V0KCkpOworCiAg
ICAgaWYgKGNvZGUgPT0gV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6Q2xvc2VFdmVudENvZGVO
b3JtYWxDbG9zdXJlKQogICAgICAgICBtX2NsaWVudC0+ZGlkU3RhcnRDbG9zaW5nSGFuZHNoYWtl
KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNv
Y2tldENoYW5uZWwuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tl
dENoYW5uZWwuaAppbmRleCAzMDY4YzUyODBiMzMzYTQxYTg4ZTcwZmEyNDQ0ZGEzNGU3YjJjM2M2
Li4wMTQ1MWIwNzM3YzE5MzUzY2NjNTg0YjFmMjkxNjkyYzU5ZDlmNDI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5oCkBAIC0z
MCw2ICszMCw4IEBACiAjaW5jbHVkZSAiV2ViU29ja2V0SWRlbnRpZmllci5oIgogI2luY2x1ZGUg
PFdlYkNvcmUvTmV0d29ya1NlbmRRdWV1ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWwuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYlNvY2tldENoYW5uZWxJ
bnNwZWN0b3IuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYlNvY2tldEZyYW1lLmg+CiAjaW5jbHVk
ZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIElQQyB7CkBAIC03NSw2ICs3Nyw4IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCByZWZUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbCgpIGZpbmFsIHsg
cmVmKCk7IH0KICAgICB2b2lkIGRlcmVmVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwoKSBmaW5h
bCB7IGRlcmVmKCk7IH0KIAorICAgIHZvaWQgbm90aWZ5U2VuZEZyYW1lKFdlYkNvcmU6OldlYlNv
Y2tldEZyYW1lOjpPcENvZGUsIGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBsZW5ndGgpOworCiAg
ICAgLy8gTWVzc2FnZSByZWNlaXZlcnMKICAgICB2b2lkIGRpZENvbm5lY3QoU3RyaW5nJiYgc3Vi
cHJvdG9jb2wsIFN0cmluZyYmIGV4dGVuc2lvbnMpOwogICAgIHZvaWQgZGlkUmVjZWl2ZVRleHQo
U3RyaW5nJiYpOwpAQCAtMTAxLDYgKzEwNSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzU3Vz
cGVuZGVkIHsgZmFsc2UgfTsKICAgICBEZXF1ZTxGdW5jdGlvbjx2b2lkKCk+PiBtX3BlbmRpbmdU
YXNrczsKICAgICBXZWJDb3JlOjpOZXR3b3JrU2VuZFF1ZXVlIG1fbWVzc2FnZVF1ZXVlOworICAg
IFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWxJbnNwZWN0b3IgbV9pbnNwZWN0b3I7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
      

    </bug>

</bugzilla>