<?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>199418</bug_id>
          
          <creation_ts>2019-07-02 12:46:00 -0700</creation_ts>
          <short_desc>Protect NetworkProcess::m_networkSessions against corruption</short_desc>
          <delta_ts>2019-07-02 13:52:54 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=199298</see_also>
          <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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1549679</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-07-02 12:46:00 -0700</bug_when>
    <thetext>Protect NetworkProcess::m_networkSessions against corruption.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549680</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-07-02 12:46:37 -0700</bug_when>
    <thetext>&lt;rdar://problem/50614019&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549687</commentid>
    <comment_count>2</comment_count>
      <attachid>373353</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-07-02 12:53:03 -0700</bug_when>
    <thetext>Created attachment 373353
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549701</commentid>
    <comment_count>3</comment_count>
      <attachid>373357</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-07-02 13:50:07 -0700</bug_when>
    <thetext>Created attachment 373357
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549702</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-07-02 13:52:54 -0700</bug_when>
    <thetext>Committed r247072: &lt;https://trac.webkit.org/changeset/247072&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>373353</attachid>
            <date>2019-07-02 12:53:03 -0700</date>
            <delta_ts>2019-07-02 13:51:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199418-20190702125302.patch</filename>
            <type>text/plain</type>
            <size>18392</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3MDUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDczNzhjMDYyOTRlYmZiNjA4
MTBkMzQwMzU3YTYxNTEwZWI2NGE0MjcuLjc2ODFkYzZhMmFmNzcxZmI3NTBjMzc5MmQ2OGZhMTc4
MjE2NjYzYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMTktMDctMDIgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBQcm90ZWN0IE5ldHdvcmtQcm9jZXNz
OjptX25ldHdvcmtTZXNzaW9ucyBhZ2FpbnN0IGNvcnJ1cHRpb24KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTQxOAorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNTA2MTQwMTk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgSSBiZWxpZXZlIHRoZSBtb3N0IGxpa2VseSByZWFzb24gZm9yIHRoZSBjcmFzaCBh
dCA8cmRhcjovL3Byb2JsZW0vNTA2MTQwMTk+IGlzIHRoYXQgTmV0d29ya1Byb2Nlc3M6Om1fbmV0
d29ya1Nlc3Npb25zCisgICAgICAgIGlzIGdldHRpbmcgY29ycnVwdGVkIGFuZCBpcyByZXR1cm5p
bmcgdXMgYSBiYWQgcG9pbnRlci4KKworICAgICAgICBUbyBoYXJkZW4gb3VyIGNvZGUsIEkgYWRk
ZWQgZGVidWcgYXNzZXJ0aW9ucyB0byBtYWtlIHN1cmUgdGhhdCB0aGlzIEhhc2hNYXAgaXMgb25s
eSB1c2VkIG9uIHRoZSBtYWluIHRocmVhZCBhbmQKKyAgICAgICAgdG8gbWFrZSBzdXJlIHRoYXQg
dGhlIHNlc3Npb25JRCB1c2VkIGFzIGtleSBpcyBhbHdheXMgdmFsaWQuIEkgaGF2ZSBhbHNvIGFk
ZGVkIGlmIGNoZWNrcyB0byBhdm9pZCBjcmFzaGluZyBpbgorICAgICAgICByZWxlYXNlIHdoZW5l
dmVyIHBvc3NpYmxlLgorCisgICAgICAgIE5vdGUgdGhhdCB3ZSBjYW1lIHRvIGEgc2ltaWxhciBj
b25jbHVzaW9uIGZvciBOZXR3b3JrUHJvY2Vzczo6bV9zd1NlcnZlcnMgd2hlbiBpbnZlc3RpZ2F0
aW5nIHJkYXI6Ly9wcm9ibGVtLzUxODU5MDgxLAorICAgICAgICBzbyB0aGUgdHdvIHJhZGFycyBh
cmUgcG90ZW50aWFsbHkgcmVsYXRlZC4gQm90aCBIYXNoTWFwcyBhcmUgb3duZWQgYnkgdGhlIE5l
dHdvcmtQcm9jZXNzIGFuZCB1c2UgYSBTZXNzaW9uSUQKKyAgICAgICAgYXMga2V5LgorCisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0Zv
ckRPTSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpz
ZXRDb29raWVzRnJvbURPTSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpsb2dVc2VySW50ZXJhY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bG9nV2ViU29ja2V0TG9hZGluZyk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpsb2dTdWJyZXNvdXJjZUxvYWRp
bmcpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bG9n
U3VicmVzb3VyY2VSZWRpcmVjdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpoYXNTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlcXVlc3RTdG9yYWdlQWNj
ZXNzVW5kZXJPcGVuZXIpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6Om5ldHdvcmtTZXNzaW9uIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldFNlc3Npb24pOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZGVzdHJveVNlc3Npb24pOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6YWRkS2VwdEFsaXZlTG9hZCk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzOjpyZW1vdmVLZXB0QWxpdmVMb2FkKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3M6OndlYlByb2Nlc3NXYXNEaXNjb25uZWN0ZWQpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jl
c291cmNlTG9hZGVyOjpyZXRyaWV2ZUNhY2hlRW50cnkpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaFdpdGhSZWRpcmVjdFJlc3BvbnNlKToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjp0cnlTdG9yZUFzQ2FjaGVFbnRyeSk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c2hvdWxkTG9nQ29va2ll
SW5mb3JtYXRpb24pOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2lvcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzc0lPUy5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OnBheW1lbnRDb29yZGluYXRvckJvdW5kSW50ZXJmYWNlSWRlbnRpZmll
cik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpwYXlt
ZW50Q29vcmRpbmF0b3JDVERhdGFDb25uZWN0aW9uU2VydmljZVR5cGUpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cGF5bWVudENvb3JkaW5hdG9yU291
cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnBheW1lbnRDb29yZGluYXRvclNvdXJjZUFwcGxpY2F0
aW9uU2Vjb25kYXJ5SWRlbnRpZmllcik6CisKIDIwMTktMDctMDIgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTaW1wbGlmeSBsb2dpYyB0aGF0IGhhbmRsZXMgcmVn
aXN0ZXJpbmcgV2ViUHJvY2Vzc1Byb3h5IG9iamVjdHMgd2l0aCB0aGVpciBXZWJzaXRlRGF0YVN0
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDU5OTI2MzljYWEyZTFiYTNiZDEy
YjAxNDA5ODk1NWNiMGRlNzNkYzkuLmI1YmM4YTNmYmQyN2U0OWRlZmJiOTU1MTZiZWZkYzliYjlj
NWZhODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC01MzEsNyArNTMxLDcgQEAg
dm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0ZvckRPTShQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIGNvbnMKICAgICBhdXRvJiBuZXR3b3JrU3RvcmFnZVNlc3Npb24g
PSBzdG9yYWdlU2Vzc2lvbihuZXR3b3JrUHJvY2VzcygpLCBzZXNzaW9uSUQpOwogICAgIGF1dG8g
cmVzdWx0ID0gbmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNvb2tpZXNGb3JET00oZmlyc3RQYXJ0eSwg
c2FtZVNpdGVJbmZvLCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwgaW5jbHVkZVNlY3VyZUNvb2tpZXMp
OwogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpICYmICFSRUxFQVNFX0xPR19E
SVNBQkxFRAotICAgIGlmIChhdXRvIHNlc3Npb24gPSBuZXR3b3JrUHJvY2VzcygpLm5ldHdvcmtT
ZXNzaW9uKHNlc3Npb25JRCkpIHsKKyAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtQcm9j
ZXNzKCkubmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewogICAgICAgICBpZiAoc2Vzc2lvbi0+
c2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24oKSkKICAgICAgICAgICAgIE5ldHdvcmtSZXNvdXJj
ZUxvYWRlcjo6bG9nQ29va2llSW5mb3JtYXRpb24oKnRoaXMsICJOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6Y29va2llc0ZvckRPTSIsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9pZCo+
KHRoaXMpLCBuZXR3b3JrU3RvcmFnZVNlc3Npb24sIGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbywg
dXJsLCBlbXB0eVN0cmluZygpLCBmcmFtZUlELCBwYWdlSUQsIFdURjo6bnVsbG9wdCk7CiAgICAg
fQpAQCAtNTQ0LDcgKzU0NCw3IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OnNldENvb2tpZXNGcm9tRE9NKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwKICAgICBhdXRvJiBu
ZXR3b3JrU3RvcmFnZVNlc3Npb24gPSBzdG9yYWdlU2Vzc2lvbihuZXR3b3JrUHJvY2VzcygpLCBz
ZXNzaW9uSUQpOwogICAgIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5zZXRDb29raWVzRnJvbURPTShm
aXJzdFBhcnR5LCBzYW1lU2l0ZUluZm8sIHVybCwgZnJhbWVJRCwgcGFnZUlELCBjb29raWVTdHJp
bmcpOwogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpICYmICFSRUxFQVNFX0xP
R19ESVNBQkxFRAotICAgIGlmIChhdXRvIHNlc3Npb24gPSBuZXR3b3JrUHJvY2VzcygpLm5ldHdv
cmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKKyAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtQ
cm9jZXNzKCkubmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewogICAgICAgICBpZiAoc2Vzc2lv
bi0+c2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24oKSkKICAgICAgICAgICAgIE5ldHdvcmtSZXNv
dXJjZUxvYWRlcjo6bG9nQ29va2llSW5mb3JtYXRpb24oKnRoaXMsICJOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6c2V0Q29va2llc0Zyb21ET00iLCByZWludGVycHJldF9jYXN0PGNvbnN0
IHZvaWQqPih0aGlzKSwgbmV0d29ya1N0b3JhZ2VTZXNzaW9uLCBmaXJzdFBhcnR5LCBzYW1lU2l0
ZUluZm8sIHVybCwgZW1wdHlTdHJpbmcoKSwgZnJhbWVJRCwgcGFnZUlELCBXVEY6Om51bGxvcHQp
OwogICAgIH0KQEAgLTY3MCw3ICs2NzAsNyBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpsb2dVc2VySW50ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELAogICAg
IGlmICghc2Vzc2lvbklELmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKGF1
dG8gbmV0d29ya1Nlc3Npb24gPSBuZXR3b3JrUHJvY2VzcygpLm5ldHdvcmtTZXNzaW9uKHNlc3Np
b25JRCkpIHsKKyAgICBpZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSBuZXR3b3JrUHJvY2Vzcygp
Lm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKICAgICAgICAgaWYgKGF1dG8qIHJlc291cmNl
TG9hZFN0YXRpc3RpY3MgPSBuZXR3b3JrU2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygp
KQogICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+bG9nVXNlckludGVyYWN0aW9u
KGRvbWFpbiwgW10geyB9KTsKICAgICB9CkBAIC02NzgsNyArNjc4LDcgQEAgdm9pZCBOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bG9nVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwKIAogdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bG9nV2Vi
U29ja2V0TG9hZGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiB0YXJnZXREb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURv
bWFpbiwgV2FsbFRpbWUgbGFzdFNlZW4pCiB7Ci0gICAgaWYgKGF1dG8gbmV0d29ya1Nlc3Npb24g
PSBuZXR3b3JrUHJvY2VzcygpLm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKKyAgICBpZiAo
YXV0byogbmV0d29ya1Nlc3Npb24gPSBuZXR3b3JrUHJvY2VzcygpLm5ldHdvcmtTZXNzaW9uKHNl
c3Npb25JRCkpIHsKICAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBu
ZXR3b3JrU2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQogICAgICAgICAgICAgcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy0+bG9nV2ViU29ja2V0TG9hZGluZyh0YXJnZXREb21haW4sIHRv
cEZyYW1lRG9tYWluLCBsYXN0U2VlbiwgW10geyB9KTsKICAgICB9CkBAIC02ODYsNyArNjg2LDcg
QEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bG9nV2ViU29ja2V0TG9hZGlu
ZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQKIAogdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6bG9nU3VicmVzb3VyY2VMb2FkaW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRhcmdldERvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHRvcEZyYW1lRG9tYWluLCBXYWxsVGltZSBsYXN0U2VlbikKIHsKLSAgICBpZiAoYXV0
byBuZXR3b3JrU2Vzc2lvbiA9IG5ldHdvcmtQcm9jZXNzKCkubmV0d29ya1Nlc3Npb24oc2Vzc2lv
bklEKSkgeworICAgIGlmIChhdXRvKiBuZXR3b3JrU2Vzc2lvbiA9IG5ldHdvcmtQcm9jZXNzKCku
bmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewogICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VM
b2FkU3RhdGlzdGljcyA9IG5ldHdvcmtTZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkp
CiAgICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5sb2dTdWJyZXNvdXJjZUxvYWRp
bmcodGFyZ2V0RG9tYWluLCB0b3BGcmFtZURvbWFpbiwgbGFzdFNlZW4sIFtdIHsgfSk7CiAgICAg
fQpAQCAtNjk0LDcgKzY5NCw3IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OmxvZ1N1YnJlc291cmNlTG9hZGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uCiAKIHZvaWQgTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmxvZ1N1YnJlc291cmNlUmVkaXJlY3QoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc291cmNlRG9tYWlu
LCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdGFyZ2V0RG9tYWluKQogewotICAgIGlmIChhdXRv
IG5ldHdvcmtTZXNzaW9uID0gbmV0d29ya1Byb2Nlc3MoKS5uZXR3b3JrU2Vzc2lvbihzZXNzaW9u
SUQpKSB7CisgICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gbmV0d29ya1Byb2Nlc3MoKS5u
ZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CiAgICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxv
YWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkK
ICAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPmxvZ1N1YnJlc291cmNlUmVkaXJl
Y3Qoc291cmNlRG9tYWluLCB0YXJnZXREb21haW4sIFtdIHsgfSk7CiAgICAgfQpAQCAtNzEzLDcg
KzcxMyw3IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlc291cmNlTG9h
ZFN0YXRpc3RpY3NVcGRhdGVkKFZlY3RvcjxXZWJDb3JlCiAKIHZvaWQgTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6Omhhc1N0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgUGFnZUlkZW50aWZp
ZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewotICAgIGlmIChhdXRvIG5ldHdvcmtTZXNzaW9uID0gbmV0d29ya1Byb2Nlc3MoKS5u
ZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CisgICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9u
ID0gbmV0d29ya1Byb2Nlc3MoKS5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CiAgICAgICAg
IGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Npb24tPnJlc291
cmNlTG9hZFN0YXRpc3RpY3MoKSkgewogICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy0+aGFzU3RvcmFnZUFjY2VzcyhzdWJGcmFtZURvbWFpbiwgdG9wRnJhbWVEb21haW4sIGZyYW1l
SUQsIHBhZ2VJRCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogICAgICAgICAgICAgcmV0
dXJuOwpAQCAtNzI1LDcgKzcyNSw3IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6Omhhc1N0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjCiAKIHZvaWQg
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9t
YWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZy
YW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJD
b3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCB3YXNHcmFudGVkLCBXZWJDb3JlOjpTdG9yYWdl
QWNjZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0V2FzU2hvd24pPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQogewotICAgIGlmIChhdXRvIG5ldHdvcmtTZXNzaW9uID0gbmV0d29ya1Byb2Nlc3MoKS5uZXR3
b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CisgICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0g
bmV0d29ya1Byb2Nlc3MoKS5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CiAgICAgICAgIGlm
IChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Npb24tPnJlc291cmNl
TG9hZFN0YXRpc3RpY3MoKSkgewogICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+
cmVxdWVzdFN0b3JhZ2VBY2Nlc3Moc3ViRnJhbWVEb21haW4sIHRvcEZyYW1lRG9tYWluLCBmcmFt
ZUlELCBwYWdlSUQsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAgICAgICAgICAgIHJl
dHVybjsKQEAgLTczNyw3ICs3MzcsNyBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSQogCiB2b2lk
IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVy
T3BlbmVyKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21h
aW4mJiBkb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MsIFBhZ2VJZGVudGlmaWVyIG9wZW5lclBh
Z2VJRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiBvcGVuZXJEb21haW4pCiB7Ci0gICAg
aWYgKGF1dG8gbmV0d29ya1Nlc3Npb24gPSBuZXR3b3JrUHJvY2VzcygpLm5ldHdvcmtTZXNzaW9u
KHNlc3Npb25JRCkpIHsKKyAgICBpZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSBuZXR3b3JrUHJv
Y2VzcygpLm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKICAgICAgICAgaWYgKGF1dG8qIHJl
c291cmNlTG9hZFN0YXRpc3RpY3MgPSBuZXR3b3JrU2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlz
dGljcygpKQogICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+cmVxdWVzdFN0b3Jh
Z2VBY2Nlc3NVbmRlck9wZW5lcihXVEZNb3ZlKGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2Vzcyks
IG9wZW5lclBhZ2VJRCwgV1RGTW92ZShvcGVuZXJEb21haW4pKTsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDNhZTJjOWVh
OWRjNDJlYWUzNmJkMjNjY2QwN2MxNDdhZmUwZTJlMmUuLjEyYzIxZGVkZjFhYWIzM2MxMGMyNTA1
NGNlYWU5YjJhMWVhMTBmNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuY3BwCkBAIC01NTksNyArNTU5LDkgQEAgdm9pZCBOZXR3b3JrUHJvY2Vz
czo6Zm9yRWFjaE5ldHdvcmtTdG9yYWdlU2Vzc2lvbihjb25zdCBGdW5jdGlvbjx2b2lkKFdlYkNv
cmU6Ok4KIAogTmV0d29ya1Nlc3Npb24qIE5ldHdvcmtQcm9jZXNzOjpuZXR3b3JrU2Vzc2lvbihj
b25zdCBQQUw6OlNlc3Npb25JRCYgc2Vzc2lvbklEKSBjb25zdAogewotICAgIHJldHVybiBtX25l
dHdvcmtTZXNzaW9ucy5nZXQoc2Vzc2lvbklEKTsKKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWlu
KCkpOworICAgIEFTU0VSVChzZXNzaW9uSUQuaXNWYWxpZCgpKTsKKyAgICByZXR1cm4gc2Vzc2lv
bklELmlzVmFsaWQoKSA/IG1fbmV0d29ya1Nlc3Npb25zLmdldChzZXNzaW9uSUQpIDogbnVsbHB0
cjsKIH0KIAogTmV0d29ya1Nlc3Npb24qIE5ldHdvcmtQcm9jZXNzOjpuZXR3b3JrU2Vzc2lvbkJ5
Q29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pIGNvbnN0CkBAIC01NzIsMTEg
KzU3NCwxNyBAQCBOZXR3b3JrU2Vzc2lvbiogTmV0d29ya1Byb2Nlc3M6Om5ldHdvcmtTZXNzaW9u
QnlDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiYgY29ubgogCiB2b2lkIE5ldHdvcmtQcm9jZXNz
OjpzZXRTZXNzaW9uKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBzZXNzaW9uSUQsIFJlZjxOZXR3b3Jr
U2Vzc2lvbj4mJiBzZXNzaW9uKQogeworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Cisg
ICAgQVNTRVJUKHNlc3Npb25JRC5pc1ZhbGlkKCkpOworICAgIGlmICghc2Vzc2lvbklELmlzVmFs
aWQoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgbV9uZXR3b3JrU2Vzc2lvbnMuc2V0KHNlc3Np
b25JRCwgV1RGTW92ZShzZXNzaW9uKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmRlc3Ry
b3lTZXNzaW9uKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBzZXNzaW9uSUQpCiB7CisgICAgQVNTRVJU
KFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBBU1NFUlQoc2Vzc2lvbklELmlzVmFsaWQoKSk7CiAg
ICAgaWYgKCFzZXNzaW9uSUQuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm47CkBAIC0yNjQ2LDEz
ICsyNjU0LDEzIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6Om1hcmtBZENsaWNrQXR0cmlidXRpb25z
QXNFeHBpcmVkRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzCiAKIHZvaWQgTmV0d29ya1Byb2Nl
c3M6OmFkZEtlcHRBbGl2ZUxvYWQoUmVmPE5ldHdvcmtSZXNvdXJjZUxvYWRlcj4mJiBsb2FkZXIp
CiB7Ci0gICAgaWYgKGF1dG8gc2Vzc2lvbiA9IG1fbmV0d29ya1Nlc3Npb25zLmdldChsb2FkZXIt
PnNlc3Npb25JRCgpKSkKKyAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKGxv
YWRlci0+c2Vzc2lvbklEKCkpKQogICAgICAgICBzZXNzaW9uLT5hZGRLZXB0QWxpdmVMb2FkKFdU
Rk1vdmUobG9hZGVyKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnJlbW92ZUtlcHRBbGl2
ZUxvYWQoTmV0d29ya1Jlc291cmNlTG9hZGVyJiBsb2FkZXIpCiB7Ci0gICAgaWYgKGF1dG8gc2Vz
c2lvbiA9IG1fbmV0d29ya1Nlc3Npb25zLmdldChsb2FkZXIuc2Vzc2lvbklEKCkpKQorICAgIGlm
IChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24obG9hZGVyLnNlc3Npb25JRCgpKSkKICAg
ICAgICAgc2Vzc2lvbi0+cmVtb3ZlS2VwdEFsaXZlTG9hZChsb2FkZXIpOwogfQogCkBAIC0yNzA1
LDEwICsyNzEzLDggQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6d2ViUHJvY2Vzc1dhc0Rpc2Nvbm5l
Y3RlZChJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCiAgICAgICAgIHJldHVybjsKIAogICAg
IGF1dG8gc2Vzc2lvbklEID0gbV9zZXNzaW9uQnlDb25uZWN0aW9uLnRha2UoY29ubmVjdGlvbklE
KTsKLSAgICBpZiAoIW1fbmV0d29ya1Nlc3Npb25zLmNvbnRhaW5zKHNlc3Npb25JRCkpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCktPnN0b3JhZ2VNYW5h
Z2VyKCkucHJvY2Vzc0RpZENsb3NlQ29ubmVjdGlvbihjb25uZWN0aW9uKTsKKyAgICBpZiAoYXV0
byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpCisgICAgICAgIHNlc3Npb24t
PnN0b3JhZ2VNYW5hZ2VyKCkucHJvY2Vzc0RpZENsb3NlQ29ubmVjdGlvbihjb25uZWN0aW9uKTsK
IH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6d2ViUHJvY2Vzc1Nlc3Npb25DaGFuZ2VkKElQQzo6
Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgUEFMOjpTZXNzaW9uSUQgbmV3U2Vzc2lvbklELCBjb25z
dCBWZWN0b3I8UGFnZUlkZW50aWZpZXI+JiBwYWdlSURzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IDRmMDk5ODRmZTRiZmYxNzZmOTlmYzdk
MDE2OTM4MDI0NGFmOWM3ZDcuLjgzYjRmMzQ4NDY0MGZiYjNjNDU2ZDcxYmI1NGYxN2IwMjBmODQ3
NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgK
QEAgLTE2NCw3ICsxNjQsNyBAQCBwdWJsaWM6CiAgICAgTmV0d29ya0NhY2hlOjpDYWNoZSogY2Fj
aGUoKSB7IHJldHVybiBtX2NhY2hlLmdldCgpOyB9CiAKICAgICB2b2lkIHNldFNlc3Npb24oY29u
c3QgUEFMOjpTZXNzaW9uSUQmLCBSZWY8TmV0d29ya1Nlc3Npb24+JiYpOwotICAgIE5ldHdvcmtT
ZXNzaW9uKiBuZXR3b3JrU2Vzc2lvbihjb25zdCBQQUw6OlNlc3Npb25JRCYpIGNvbnN0IG92ZXJy
aWRlOworICAgIE5ldHdvcmtTZXNzaW9uKiBuZXR3b3JrU2Vzc2lvbihjb25zdCBQQUw6OlNlc3Np
b25JRCYpIGNvbnN0IGZpbmFsOwogICAgIE5ldHdvcmtTZXNzaW9uKiBuZXR3b3JrU2Vzc2lvbkJ5
Q29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24mKSBjb25zdDsKICAgICB2b2lkIGRlc3Ryb3lTZXNz
aW9uKGNvbnN0IFBBTDo6U2Vzc2lvbklEJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCAwYjNjMDgxZWM4
MzIxZjc0ZDc3OWRiZDQzZDljNzcwMjAyYTg5YTgwLi5lYTUxZDUzOThlYmE0NjEzYTUxOTJkZjVm
NTk1ZmJkMDRiZThmMzlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0yMTMsNyArMjEzLDcgQEAgdm9pZCBO
ZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnJldHJpZXZlQ2FjaGVFbnRyeShjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QpCiAgICAgUmVmUHRyPE5ldHdvcmtSZXNvdXJjZUxvYWRlcj4gbG9hZGVy
KHRoaXMpOwogICAgIGlmIChpc01haW5GcmFtZUxvYWQoKSkgewogICAgICAgICBBU1NFUlQobV9w
YXJhbWV0ZXJzLm9wdGlvbnMubW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6Ok5hdmlnYXRlKTsK
LSAgICAgICAgaWYgKGF1dG8gc2Vzc2lvbiA9IG1fY29ubmVjdGlvbi0+bmV0d29ya1Byb2Nlc3Mo
KS5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQoKSkpIHsKKyAgICAgICAgaWYgKGF1dG8qIHNlc3Np
b24gPSBtX2Nvbm5lY3Rpb24tPm5ldHdvcmtQcm9jZXNzKCkubmV0d29ya1Nlc3Npb24oc2Vzc2lv
bklEKCkpKSB7CiAgICAgICAgICAgICBpZiAoYXV0byBlbnRyeSA9IHNlc3Npb24tPnByZWZldGNo
Q2FjaGUoKS50YWtlKHJlcXVlc3QudXJsKCkpKSB7CiAgICAgICAgICAgICAgICAgaWYgKCFlbnRy
eS0+cmVkaXJlY3RSZXF1ZXN0LmlzTnVsbCgpKSB7CiAgICAgICAgICAgICAgICAgICAgIGF1dG8g
bWF4QWdlQ2FwID0gdmFsaWRhdGVDYWNoZUVudHJ5Rm9yTWF4QWdlQ2FwVmFsaWRhdGlvbihyZXF1
ZXN0LCBlbnRyeS0+cmVkaXJlY3RSZXF1ZXN0LCBlbnRyeS0+cmVzcG9uc2UpOwpAQCAtNjkxLDcg
KzY5MSw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hXaXRoUmVkaXJl
Y3RSZXNwb25zZShXZWJDb3JlOjpSZXNvdXJjZVJlcXVlCiAgICAgcmVkaXJlY3RSZXNwb25zZS5z
ZXRUeXBlKFJlc291cmNlUmVzcG9uc2U6OlR5cGU6Ok9wYXF1ZXJlZGlyZWN0KTsKICAgICBpZiAo
IWlzQ3Jvc3NPcmlnaW5QcmVmZXRjaCgpKQogICAgICAgICBkaWRSZWNlaXZlUmVzcG9uc2UoV1RG
TW92ZShyZWRpcmVjdFJlc3BvbnNlKSwgW10gKGF1dG8pIHsgfSk7Ci0gICAgZWxzZSBpZiAoYXV0
byBzZXNzaW9uID0gbV9jb25uZWN0aW9uLT5uZXR3b3JrUHJvY2VzcygpLm5ldHdvcmtTZXNzaW9u
KHNlc3Npb25JRCgpKSkKKyAgICBlbHNlIGlmIChhdXRvKiBzZXNzaW9uID0gbV9jb25uZWN0aW9u
LT5uZXR3b3JrUHJvY2VzcygpLm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCgpKSkKICAgICAgICAg
c2Vzc2lvbi0+cHJlZmV0Y2hDYWNoZSgpLnN0b3JlUmVkaXJlY3QobV9uZXR3b3JrTG9hZC0+Y3Vy
cmVudFJlcXVlc3QoKS51cmwoKSwgV1RGTW92ZShyZWRpcmVjdFJlc3BvbnNlKSwgV1RGTW92ZShy
ZWRpcmVjdFJlcXVlc3QpKTsKIAogICAgIFdlYkNvcmU6Ok5ldHdvcmtMb2FkTWV0cmljcyBuZXR3
b3JrTG9hZE1ldHJpY3M7CkBAIC04MjAsNyArODIwLDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VM
b2FkZXI6OnRyeVN0b3JlQXNDYWNoZUVudHJ5KCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYg
KGlzQ3Jvc3NPcmlnaW5QcmVmZXRjaCgpKSB7Ci0gICAgICAgIGlmIChhdXRvIHNlc3Npb24gPSBt
X2Nvbm5lY3Rpb24tPm5ldHdvcmtQcm9jZXNzKCkubmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKCkp
KQorICAgICAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG1fY29ubmVjdGlvbi0+bmV0d29ya1Byb2Nl
c3MoKS5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQoKSkpCiAgICAgICAgICAgICBzZXNzaW9uLT5w
cmVmZXRjaENhY2hlKCkuc3RvcmUobV9uZXR3b3JrTG9hZC0+Y3VycmVudFJlcXVlc3QoKS51cmwo
KSwgV1RGTW92ZShtX3Jlc3BvbnNlKSwgV1RGTW92ZShtX2J1ZmZlcmVkRGF0YUZvckNhY2hlKSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC05ODEsNyArOTgxLDcgQEAgYm9vbCBOZXR3b3Jr
UmVzb3VyY2VMb2FkZXI6OnNob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcygpIGNv
bnN0CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykgJiYgIVJFTEVBU0VfTE9H
X0RJU0FCTEVECiBib29sIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c2hvdWxkTG9nQ29va2llSW5m
b3JtYXRpb24oTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24sIGNvbnN0
IFBBTDo6U2Vzc2lvbklEJiBzZXNzaW9uSUQpCiB7Ci0gICAgaWYgKGF1dG8gc2Vzc2lvbiA9IGNv
bm5lY3Rpb24ubmV0d29ya1Byb2Nlc3MoKS5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKQorICAg
IGlmIChhdXRvKiBzZXNzaW9uID0gY29ubmVjdGlvbi5uZXR3b3JrUHJvY2VzcygpLm5ldHdvcmtT
ZXNzaW9uKHNlc3Npb25JRCkpCiAgICAgICAgIHJldHVybiBzZXNzaW9uLT5zaG91bGRMb2dDb29r
aWVJbmZvcm1hdGlvbigpOwogICAgIHJldHVybiBmYWxzZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvaW9zL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
SU9TLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9pb3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3NJT1MubW0KaW5kZXggZWI4OTQ5ODFmMjExMTNjYzlkYTJiNDcyYTc0ODgx
MGJiNWNjZGU5Yi4uMjM3NDUyODhhMDZkMDExNDU5MTk2OGI1MDg2ZGViNWY0NWFhMGFjNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9pb3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3NJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9p
b3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NJT1MubW0KQEAgLTU0LDI4ICs1NCwyOCBA
QCBVSVZpZXdDb250cm9sbGVyICpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cGF5bWVu
dENvb3JkaW5hdG9yUHJlc2VudGluZ1ZpZQogCiBjb25zdCBTdHJpbmcmIE5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpwYXltZW50Q29vcmRpbmF0b3JCb3VuZEludGVyZmFjZUlkZW50aWZp
ZXIoY29uc3QgV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkmLCBQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQpCiB7Ci0gICAgaWYgKGF1dG8gc2Vzc2lvbiA9IHN0YXRpY19jYXN0PE5ldHdvcmtTZXNz
aW9uQ29jb2EqPihtX25ldHdvcmtQcm9jZXNzLT5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSkK
KyAgICBpZiAoYXV0byogc2Vzc2lvbiA9IHN0YXRpY19jYXN0PE5ldHdvcmtTZXNzaW9uQ29jb2Eq
PihtX25ldHdvcmtQcm9jZXNzLT5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSkKICAgICAgICAg
cmV0dXJuIHNlc3Npb24tPmJvdW5kSW50ZXJmYWNlSWRlbnRpZmllcigpOwogICAgIHJldHVybiBl
bXB0eVN0cmluZygpOwogfQogCiBjb25zdCBTdHJpbmcmIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpwYXltZW50Q29vcmRpbmF0b3JDVERhdGFDb25uZWN0aW9uU2VydmljZVR5cGUoY29u
c3QgV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkmLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQp
CiB7Ci0gICAgaWYgKGF1dG8gc2Vzc2lvbiA9IHN0YXRpY19jYXN0PE5ldHdvcmtTZXNzaW9uQ29j
b2EqPihtX25ldHdvcmtQcm9jZXNzLT5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSkKKyAgICBp
ZiAoYXV0byogc2Vzc2lvbiA9IHN0YXRpY19jYXN0PE5ldHdvcmtTZXNzaW9uQ29jb2EqPihtX25l
dHdvcmtQcm9jZXNzLT5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSkKICAgICAgICAgcmV0dXJu
IHNlc3Npb24tPmN0RGF0YUNvbm5lY3Rpb25TZXJ2aWNlVHlwZSgpOwogICAgIHJldHVybiBlbXB0
eVN0cmluZygpOwogfQogCiBjb25zdCBTdHJpbmcmIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpwYXltZW50Q29vcmRpbmF0b3JTb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIo
Y29uc3QgV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkmLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQpCiB7Ci0gICAgaWYgKGF1dG8gc2Vzc2lvbiA9IHN0YXRpY19jYXN0PE5ldHdvcmtTZXNzaW9u
Q29jb2EqPihtX25ldHdvcmtQcm9jZXNzLT5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSkKKyAg
ICBpZiAoYXV0byogc2Vzc2lvbiA9IHN0YXRpY19jYXN0PE5ldHdvcmtTZXNzaW9uQ29jb2EqPiht
X25ldHdvcmtQcm9jZXNzLT5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSkKICAgICAgICAgcmV0
dXJuIHNlc3Npb24tPnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcigpOwogICAgIHJl
dHVybiBlbXB0eVN0cmluZygpOwogfQogCiBjb25zdCBTdHJpbmcmIE5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpwYXltZW50Q29vcmRpbmF0b3JTb3VyY2VBcHBsaWNhdGlvblNlY29uZGFy
eUlkZW50aWZpZXIoY29uc3QgV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkmLCBQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQpCiB7Ci0gICAgaWYgKGF1dG8gc2Vzc2lvbiA9IHN0YXRpY19jYXN0PE5l
dHdvcmtTZXNzaW9uQ29jb2EqPihtX25ldHdvcmtQcm9jZXNzLT5uZXR3b3JrU2Vzc2lvbihzZXNz
aW9uSUQpKSkKKyAgICBpZiAoYXV0byogc2Vzc2lvbiA9IHN0YXRpY19jYXN0PE5ldHdvcmtTZXNz
aW9uQ29jb2EqPihtX25ldHdvcmtQcm9jZXNzLT5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSkK
ICAgICAgICAgcmV0dXJuIHNlc3Npb24tPnNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRp
ZmllcigpOwogICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>373357</attachid>
            <date>2019-07-02 13:50:07 -0700</date>
            <delta_ts>2019-07-02 13:51:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199418-20190702135006.patch</filename>
            <type>text/plain</type>
            <size>41621</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3MDUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRmNWYxNjczYzMxZjA4NzY5
NGNjMDMwYmFjYjIzZTliYzAzYTc4Y2IuLjczNzhjMDYyOTRlYmZiNjA4MTBkMzQwMzU3YTYxNTEw
ZWI2NGE0MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjggQEAKKzIwMTktMDctMDIgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTaW1wbGlmeSBsb2dpYyB0aGF0IGhh
bmRsZXMgcmVnaXN0ZXJpbmcgV2ViUHJvY2Vzc1Byb3h5IG9iamVjdHMgd2l0aCB0aGVpciBXZWJz
aXRlRGF0YVN0b3JlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTk0MTIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUxODk5NzUxPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNpbXBsaWZ5IGxvZ2ljIHRo
YXQgaGFuZGxlcyByZWdpc3RlcmluZyBXZWJQcm9jZXNzUHJveHkgb2JqZWN0cyB3aXRoIHRoZWly
IFdlYnNpdGVEYXRhU3RvcmUgdG8gbWFrZQorICAgICAgICBpdCBtb3JlIG1haW50YWluYWJsZSBh
bmQgbGVzcyBlcnJvci1wcm9uZSAoYXZvaWQgYnVncyBsaWtlIDxyZGFyOi8vcHJvYmxlbS81MTg5
OTc1MT4pLgorCisgICAgICAgIFRoZSBmb2xsb3dpbmcgY2hhbmdlcyB3ZXJlIG1hZGU6CisgICAg
ICAgIDEuIFRoZSBXZWJQcm9jZXNzIG5vdyByZWdpc3RlcnMgLyB1bnJlZ2lzdGVycyBpdHNlbGYg
ZGlyZWN0bHkgd2l0aCBpdHMgV2Vic2l0ZURhdGFTdG9yZSB3aGVuIG5lZWRlZCwKKyAgICAgICAg
ICAgaW5zdGVhZCBvZiBoYXZpbmcgdGhlIFdlYlBhZ2VQcm94eS9Qcm92aXNpb25hbFBhZ2VQcm94
eSBiZSBpbiBjaGFyZ2Ugb2YgY2FsbGluZyB0aGUgcmlnaHQKKyAgICAgICAgICAgV2ViUHJvY2Vz
c0xpZmV0aW1lVHJhY2tlciAvIFdlYlByb2Nlc3NMaWZldGltZU9ic2VydmVyIGFic3RyYWN0aW9u
cy4KKyAgICAgICAgMi4gVGhlIFdlYlByb2Nlc3NMaWZldGltZVRyYWNrZXIgLyBXZWJQcm9jZXNz
TGlmZXRpbWVPYnNlcnZlciBhYnN0cmFjdGlvbnMgd2VyZSBkcm9wcGVkLiBUaGUKKyAgICAgICAg
ICAgV2Vic2l0ZURhdGFTdG9yZSB3YXMgdGhlIG9ubHkgb2JzZXJ2ZXIuCisgICAgICAgIDMuIFRo
ZSBXZWJQcm9jZXNzUHJveHkgaXMgbm93IHJlZ2lzdGVyZWQgd2l0aCBpdHMgV2Vic2l0ZURhdGFT
dG9yZSBhcyBzb29uIGFzIGl0IGhhcyBhIHBhZ2UgKHByb3Zpc2lvbmFsCisgICAgICAgICAgIG9y
IG5vdCkgaW5zdGVhZCBvZiB3YWl0aW5nIHVudGlsIHRoZSBwcm9jZXNzIGhhcyBmaW5pc2hlZCBs
YXVuY2hpbmcuIFRoaXMgc2ltcGxpZmllcyB0aGUgbG9naWMgYQorICAgICAgICAgICBsb3QgYW5k
IHdhaXRpbmcgdW50aWwgdGhlIHByb2Nlc3MgaGFzIGxhdW5jaGVkIGlzIG5vdCBuZWVkZWQgYnkg
dGhlIFdlYnNpdGVEYXRhU3RvcmUuCisgICAgICAgICAgIAorCisgICAgICAgICogU291cmNlcy50
eHQ6CisgICAgICAgICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OlByb3Zpc2lvbmFsUGFnZVByb3h5KToK
KyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6On5Qcm92aXNpb25hbFBhZ2VQ
cm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fcmVz
ZXRSZWNlbnRDcmFzaENvdW50VGltZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmZpbmlzaEF0dGFjaGluZ1RvV2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6Y2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnByb2Nlc3NEaWRU
ZXJtaW5hdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUHJvY2Vzc0NhY2hlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc0NhY2hlOjpDYWNoZWRQcm9jZXNzOjpDYWNoZWRQcm9jZXNzKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUHJvY2Vzc0xpZmV0aW1lT2JzZXJ2ZXIuY3BwOiBSZW1vdmVkLgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQcm9jZXNzTGlmZXRpbWVPYnNlcnZlci5oOiBSZW1vdmVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzTGlmZXRpbWVUcmFja2VyLmNwcDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc0xpZmV0aW1lVHJhY2tlci5oOiBSZW1vdmVkLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzUHJveHk6OnNldFdlYnNpdGVEYXRhU3RvcmUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzUHJveHk6OnVwZGF0ZVJlZ2lzdHJhdGlvbldpdGhEYXRhU3RvcmUpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmFkZFByb3Zpc2lvbmFsUGFnZVByb3h5KToK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpyZW1vdmVQcm92aXNpb25hbFBhZ2VQ
cm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6Y29ubmVjdGlvbldpbGxP
cGVuKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojpwcm9jZXNzV2lsbFNodXRE
b3duKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjphZGRFeGlzdGluZ1dlYlBh
Z2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnJlbW92ZVdlYlBhZ2UpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YnNpdGVEYXRhU3RvcmU6OnJlZ2lzdGVyUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYnNp
dGVEYXRhU3RvcmU6OnVucmVnaXN0ZXJQcm9jZXNzKToKKworICAgICAgICAoV2ViS2l0OjpXZWJz
aXRlRGF0YVN0b3JlOjpwcm9jZXNzUG9vbEZvckNvb2tpZVN0b3JhZ2VPcGVyYXRpb25zKToKKyAg
ICAgICAgRHJvcCBjaGFuZ2UgdGhhdCB3YXMgYWRkZWQgaW4gcjI0NjA5NyB0byB3b3JrIGFyb3Vu
ZCB0aGUgZmFjdCB0aGF0IFdlYlByb2Nlc3NQcm94eSBvYmplY3RzCisgICAgICAgIHdlcmUgb25s
eSByZWdpc3RlcmluZyB0aGVtc2VsdmVzIHdpdGggdGhlaXIgZGF0YSBzdG9yZSBhZnRlciB0aGVp
ciBwcm9jZXNzIGhhZCBmaW5pc2hlZAorICAgICAgICBsYXVuY2hpbmcuCisKKyAgICAgICAgKFdl
YktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6ZmV0Y2hEYXRhQW5kQXBwbHkpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpyZW1vdmVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
c2l0ZURhdGFTdG9yZTo6cHJvY2Vzc1Bvb2xzIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRl
RGF0YVN0b3JlOjpwcm9jZXNzZXMgY29uc3QpOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorCiAyMDE5LTA3LTAyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgVmlzaXRlZExpbmtTdG9yZSBkb2VzIG5vdCBuZWVkIHRvIHN1YmNs
YXNzIFdlYlByb2Nlc3NMaWZldGltZU9ic2VydmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCA3ZDI1ZWQ0ZDBi
ZDg2NDA1MmZkNDdkMjUzYWZjOWFhMjZiMzVkNDYxLi4xYjc1ZDdhMDQwYjE4M2UzNzc3ZDg4Y2M1
NDg0MGExMGRkMDY0YjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0Cisr
KyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTI5MCw4ICsyOTAsNiBAQCBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAogVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5jcHAKIFVJ
UHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5jcHAKIFVJUHJvY2Vzcy9XZWJQcm9jZXNzQ2FjaGUuY3Bw
Ci1VSVByb2Nlc3MvV2ViUHJvY2Vzc0xpZmV0aW1lT2JzZXJ2ZXIuY3BwCi1VSVByb2Nlc3MvV2Vi
UHJvY2Vzc0xpZmV0aW1lVHJhY2tlci5jcHAKIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAK
IFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCiBVSVByb2Nlc3MvV2ViVVJMU2NoZW1lSGFu
ZGxlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFs
UGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVBy
b3h5LmNwcAppbmRleCBhZDRiZDViOWUzMWM1ODRhNzRiYjY0Zjk1MDk2OTUzNmRlMGRmNThmLi45
MWIyNDYyZDcxMjc2MGExNGYxOGU2YjUyZjY4MDNiNmVlYjZlYjJlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCkBAIC02OCw5ICs2OCw2
IEBAIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpQcm92aXNpb25hbFBhZ2VQcm94eShXZWJQYWdlUHJv
eHkmIHBhZ2UsIFJlZjxXZWJQcm9jZXNzUHJvCiAgICAgbV9wcm9jZXNzLT5hZGRNZXNzYWdlUmVj
ZWl2ZXIoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3Bh
Z2UucGFnZUlEKCksICp0aGlzKTsKICAgICBtX3Byb2Nlc3MtPmFkZFByb3Zpc2lvbmFsUGFnZVBy
b3h5KCp0aGlzKTsKIAotICAgIGlmIChtX3Byb2Nlc3MtPnN0YXRlKCkgPT0gQXV4aWxpYXJ5UHJv
Y2Vzc1Byb3h5OjpTdGF0ZTo6UnVubmluZykKLSAgICAgICAgbV9wYWdlLndlYlByb2Nlc3NMaWZl
dGltZVRyYWNrZXIoKS53ZWJQYWdlRW50ZXJpbmdXZWJQcm9jZXNzKG1fcHJvY2Vzcyk7Ci0KICAg
ICBpZiAoJm1fcHJvY2Vzcy0+d2Vic2l0ZURhdGFTdG9yZSgpICE9ICZtX3BhZ2Uud2Vic2l0ZURh
dGFTdG9yZSgpKQogICAgICAgICBtX3Byb2Nlc3MtPnByb2Nlc3NQb29sKCkucGFnZUJlZ2luVXNp
bmdXZWJzaXRlRGF0YVN0b3JlKG1fcGFnZS5wYWdlSUQoKSwgbV9wcm9jZXNzLT53ZWJzaXRlRGF0
YVN0b3JlKCkpOwogCkBAIC05NSw5ICs5Miw2IEBAIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojp+UHJv
dmlzaW9uYWxQYWdlUHJveHkoKQogICAgIGlmIChtX3dhc0NvbW1pdHRlZCkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgaWYgKG1fcHJvY2Vzcy0+c3RhdGUoKSA9PSBBdXhpbGlhcnlQcm9jZXNzUHJv
eHk6OlN0YXRlOjpSdW5uaW5nKQotICAgICAgICBtX3BhZ2Uud2ViUHJvY2Vzc0xpZmV0aW1lVHJh
Y2tlcigpLndlYlBhZ2VMZWF2aW5nV2ViUHJvY2VzcyhtX3Byb2Nlc3MpOwotCiAgICAgaWYgKCZt
X3Byb2Nlc3MtPndlYnNpdGVEYXRhU3RvcmUoKSAhPSAmbV9wYWdlLndlYnNpdGVEYXRhU3RvcmUo
KSkKICAgICAgICAgbV9wcm9jZXNzLT5wcm9jZXNzUG9vbCgpLnBhZ2VFbmRVc2luZ1dlYnNpdGVE
YXRhU3RvcmUobV9wYWdlLnBhZ2VJRCgpLCBtX3Byb2Nlc3MtPndlYnNpdGVEYXRhU3RvcmUoKSk7
CiAKQEAgLTExMCwxMyArMTA0LDYgQEAgUHJvdmlzaW9uYWxQYWdlUHJveHk6On5Qcm92aXNpb25h
bFBhZ2VQcm94eSgpCiAgICAgfSk7CiB9CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmNv
bm5lY3Rpb25XaWxsT3BlbihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCi17Ci0gICAgQVNT
RVJUX1VOVVNFRChjb25uZWN0aW9uLCAmY29ubmVjdGlvbiA9PSBtX3Byb2Nlc3MtPmNvbm5lY3Rp
b24oKSk7Ci0KLSAgICBtX3BhZ2Uud2ViUHJvY2Vzc0xpZmV0aW1lVHJhY2tlcigpLndlYlBhZ2VF
bnRlcmluZ1dlYlByb2Nlc3MobV9wcm9jZXNzKTsKLX0KLQogdm9pZCBQcm92aXNpb25hbFBhZ2VQ
cm94eTo6cHJvY2Vzc0RpZFRlcm1pbmF0ZSgpCiB7CiAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZf
QUxMT1dFRChQcm9jZXNzU3dhcHBpbmcsICJwcm9jZXNzRGlkVGVybWluYXRlOiBwYWdlSUQgPSAl
IiBQUkl1NjQsIG1fcGFnZS5wYWdlSUQoKS50b1VJbnQ2NCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oCmluZGV4IDY1YWZiODZiODEwMmU0ZGM2
NGY0ODk0ZjEyYzkzMWNkYTM2Mzk3ZGQuLjMzMzIxNmEyY2M3ODU2NjcxNjMyNGFiMDZmZjFiM2I5
NjA4MGMwYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFs
UGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdl
UHJveHkuaApAQCAtODYsNyArODYsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBjYW5jZWwoKTsKIAog
ICAgIHZvaWQgcHJvY2Vzc0RpZFRlcm1pbmF0ZSgpOwotICAgIHZvaWQgY29ubmVjdGlvbldpbGxP
cGVuKElQQzo6Q29ubmVjdGlvbiYpOwogCiBwcml2YXRlOgogICAgIC8vIElQQzo6TWVzc2FnZVJl
Y2VpdmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCAwNjM1
YTZkMGJlN2U1NzkzZGEwNmUwM2ExZWY0YTY4YTUwZWM3MjY2Li4wZmZiOWI3NTE5MWQ3ZGEwYzll
MmVhYmY4ZGU1NWY1NTExZDBhMDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKQEAgLTQ0NSw4ICs0NDUsNiBAQCBXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eShQ
YWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIFBhZwogICAg
IGlmICghbV9jb25maWd1cmF0aW9uLT5kcmF3c0JhY2tncm91bmQoKSkKICAgICAgICAgbV9iYWNr
Z3JvdW5kQ29sb3IgPSBDb2xvcihDb2xvcjo6dHJhbnNwYXJlbnQpOwogCi0gICAgbV93ZWJQcm9j
ZXNzTGlmZXRpbWVUcmFja2VyLmFkZE9ic2VydmVyKG1fd2Vic2l0ZURhdGFTdG9yZSk7Ci0KICAg
ICB1cGRhdGVBY3Rpdml0eVN0YXRlKCk7CiAgICAgdXBkYXRlVGhyb3R0bGVTdGF0ZSgpOwogICAg
IHVwZGF0ZUhpZGRlblBhZ2VUaHJvdHRsaW5nQXV0b0luY3JlYXNlcygpOwpAQCAtODEwLDEzICs4
MDgsNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZmluaXNoQXR0YWNoaW5nVG9XZWJQcm9jZXNzKElz
UHJvY2Vzc1N3YXAgaXNQcm9jZXNzU3dhcCkKIHsKICAgICBBU1NFUlQobV9wcm9jZXNzLT5zdGF0
ZSgpICE9IEF1eGlsaWFyeVByb2Nlc3NQcm94eTo6U3RhdGU6OlRlcm1pbmF0ZWQpOwogCi0gICAg
aWYgKG1fcHJvY2Vzcy0+c3RhdGUoKSA9PSBBdXhpbGlhcnlQcm9jZXNzUHJveHk6OlN0YXRlOjpS
dW5uaW5nKSB7Ci0gICAgICAgIC8vIEluIHRoZSBwcm9jZXNzLXN3YXAgY2FzZSwgdGhlIFByb3Zp
c2lvbmFsUGFnZVByb3h5IGNvbnN0cnVjdG9yIGFscmVhZHkgdG9vayBjYXJlIG9mIGNhbGxpbmcg
d2ViUGFnZUVudGVyaW5nV2ViUHJvY2VzcygpCi0gICAgICAgIC8vIHdoZW4gdGhlIHByb2Nlc3Mg
d2FzIHByb3Zpc2lvbmFsLgotICAgICAgICBpZiAoaXNQcm9jZXNzU3dhcCAhPSBJc1Byb2Nlc3NT
d2FwOjpZZXMpCi0gICAgICAgICAgICBtX3dlYlByb2Nlc3NMaWZldGltZVRyYWNrZXIud2ViUGFn
ZUVudGVyaW5nV2ViUHJvY2VzcyhtX3Byb2Nlc3MpOwotICAgIH0KLQogICAgIHVwZGF0ZUFjdGl2
aXR5U3RhdGUoKTsKICAgICB1cGRhdGVUaHJvdHRsZVN0YXRlKCk7CiAKQEAgLTEwMTAsOCArMTAw
MSw2IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpjbG9zZSgpCiAgICAgbV9mdWxsc2NyZWVuQ2xpZW50
ID0gc3RkOjptYWtlX3VuaXF1ZTxBUEk6OkZ1bGxzY3JlZW5DbGllbnQ+KCk7CiAjZW5kaWYKIAot
ICAgIG1fd2ViUHJvY2Vzc0xpZmV0aW1lVHJhY2tlci5wYWdlV2FzSW52YWxpZGF0ZWQoKTsKLQog
ICAgIG1fcHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKS5yZW1vdmVBbGxTdXNwZW5kZWRQYWdlc0ZvclBh
Z2UoKnRoaXMpOwogCiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpDbG9z
ZSgpLCBtX3BhZ2VJRCk7CkBAIC01MTk1LDE4ICs1MTg0LDYgQEAgdm9pZCBXZWJQYWdlUHJveHk6
Om1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KFdlYkhpdFRlc3RSZXN1bHREYXRhJiYgaGl0VGVzdFJl
c3VsdEQKICAgICBtX3VpQ2xpZW50LT5tb3VzZURpZE1vdmVPdmVyRWxlbWVudCgqdGhpcywgaGl0
VGVzdFJlc3VsdERhdGEsIG1vZGlmaWVycywgbV9wcm9jZXNzLT50cmFuc2Zvcm1IYW5kbGVzVG9P
YmplY3RzKHVzZXJEYXRhLm9iamVjdCgpKS5nZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5
Ojpjb25uZWN0aW9uV2lsbE9wZW4oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQotewotICAg
IEFTU0VSVF9VTlVTRUQoY29ubmVjdGlvbiwgJmNvbm5lY3Rpb24gPT0gbV9wcm9jZXNzLT5jb25u
ZWN0aW9uKCkpOwotCi0gICAgbV93ZWJQcm9jZXNzTGlmZXRpbWVUcmFja2VyLndlYlBhZ2VFbnRl
cmluZ1dlYlByb2Nlc3MobV9wcm9jZXNzKTsKLX0KLQotdm9pZCBXZWJQYWdlUHJveHk6OndlYlBy
b2Nlc3NXaWxsU2h1dERvd24oKQotewotICAgIG1fd2ViUHJvY2Vzc0xpZmV0aW1lVHJhY2tlci53
ZWJQYWdlTGVhdmluZ1dlYlByb2Nlc3MobV9wcm9jZXNzKTsKLX0KLQogI2lmIEVOQUJMRShORVRT
Q0FQRV9QTFVHSU5fQVBJKQogdm9pZCBXZWJQYWdlUHJveHk6OnVuYXZhaWxhYmxlUGx1Z2luQnV0
dG9uQ2xpY2tlZCh1aW50MzJfdCBvcGFxdWVQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiwgY29u
c3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiBwbHVnaW5VUkxTdHJpbmcsIGNvbnN0
IFN0cmluZyYgcGx1Z2luc3BhZ2VBdHRyaWJ1dGVVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZnJh
bWVVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgcGFnZVVSTFN0cmluZykKIHsKQEAgLTY4MzAsOSAr
NjgwNyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpwcm9jZXNzRGlkVGVybWluYXRlKFByb2Nlc3NU
ZXJtaW5hdGlvblJlYXNvbiByZWFzb24pCiAgICAgLy8gRm9yIGJyaW5ndXAgb2YgcHJvY2VzcyBz
d2FwcGluZywgTmF2aWdhdGlvblN3YXAgdGVybWluYXRpb24gd2lsbCBub3QgZ28gb3V0IHRvIGNs
aWVudHMuCiAgICAgLy8gSWYgaXQgZG9lcyAqZHVyaW5nKiBwcm9jZXNzIHN3YXBwaW5nLCBhbmQg
dGhlIGNsaWVudCB0cmlnZ2VycyBhIHJlbG9hZCwgdGhhdCBjYXVzZXMgYml6YXJyZSBXZWJLaXQg
cmUtZW50cnkuCiAgICAgLy8gRklYTUU6IFRoaXMgbWlnaHQgaGF2ZSB0byBjaGFuZ2UKLSAgICBp
ZiAocmVhc29uID09IFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbjo6TmF2aWdhdGlvblN3YXApCi0g
ICAgICAgIG1fd2ViUHJvY2Vzc0xpZmV0aW1lVHJhY2tlci53ZWJQYWdlTGVhdmluZ1dlYlByb2Nl
c3MobV9wcm9jZXNzKTsKLSAgICBlbHNlIHsKKyAgICBpZiAocmVhc29uICE9IFByb2Nlc3NUZXJt
aW5hdGlvblJlYXNvbjo6TmF2aWdhdGlvblN3YXApIHsKICAgICAgICAgbmF2aWdhdGlvblN0YXRl
KCkuY2xlYXJBbGxOYXZpZ2F0aW9ucygpOwogICAgICAgICBkaXNwYXRjaFByb2Nlc3NEaWRUZXJt
aW5hdGUocmVhc29uKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CmluZGV4IGExOWVlMDk2NDlkNGE3MzdlODg5YjI3NjViNmM4MzRkMTNiMjhhOTYuLjYwYzVjNTE2
NzM1MGYwYTI5MmI5ZDhjMzRiYmVmYTIxOGZkOWIyNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCkBAIC02NCw3ICs2NCw2IEBACiAjaW5jbHVkZSAiV2ViUHJlZmVyZW5j
ZXMuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlBv
cHVwTWVudVByb3h5LmgiCi0jaW5jbHVkZSAiV2ViUHJvY2Vzc0xpZmV0aW1lVHJhY2tlci5oIgog
I2luY2x1ZGUgIldlYlVuZG9TdGVwSUQuaCIKICNpbmNsdWRlICJXZWJzaXRlUG9saWNpZXNEYXRh
LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9BY3Rpdml0eVN0YXRlLmg+CkBAIC00MDksOCArNDA4LDYg
QEAgcHVibGljOgogCiAgICAgdm9pZCBhZGRQcmV2aW91c2x5VmlzaXRlZFBhdGgoY29uc3QgU3Ry
aW5nJik7CiAKLSAgICBXZWJQcm9jZXNzTGlmZXRpbWVUcmFja2VyJiB3ZWJQcm9jZXNzTGlmZXRp
bWVUcmFja2VyKCkgeyByZXR1cm4gbV93ZWJQcm9jZXNzTGlmZXRpbWVUcmFja2VyOyB9Ci0KICNp
ZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCiAgICAgTlNBcnJheSAqZGF0YURldGVjdGlvblJlc3Vs
dHMoKSB7IHJldHVybiBtX2RhdGFEZXRlY3Rpb25SZXN1bHRzLmdldCgpOyB9CiAgICAgdm9pZCBk
ZXRlY3REYXRhSW5BbGxGcmFtZXMoV2ViQ29yZTo6RGF0YURldGVjdG9yVHlwZXMsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoY29uc3QgRGF0YURldGVjdGlvblJlc3VsdCYpPiYmKTsKQEAgLTEyNTUs
OSArMTI1Miw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZEZpbmlzaENoZWNraW5nVGV4dCh1aW50
NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQ+
Jik7CiAgICAgdm9pZCBkaWRDYW5jZWxDaGVja2luZ1RleHQodWludDY0X3QgcmVxdWVzdElEKTsK
IAotICAgIHZvaWQgY29ubmVjdGlvbldpbGxPcGVuKElQQzo6Q29ubmVjdGlvbiYpOwotICAgIHZv
aWQgd2ViUHJvY2Vzc1dpbGxTaHV0RG93bigpOwotCiAgICAgdm9pZCBkaWRTYXZlVG9QYWdlQ2Fj
aGUoKTsKICAgICAgICAgCiAgICAgdm9pZCBzZXRTY3JvbGxQaW5uaW5nQmVoYXZpb3IoV2ViQ29y
ZTo6U2Nyb2xsUGlubmluZ0JlaGF2aW9yKTsKQEAgLTIxMzUsOCArMjEyOSw2IEBAIHByaXZhdGU6
CiAgICAgUmVmPFdlYlBhZ2VHcm91cD4gbV9wYWdlR3JvdXA7CiAgICAgUmVmPFdlYlByZWZlcmVu
Y2VzPiBtX3ByZWZlcmVuY2VzOwogCi0gICAgV2ViUHJvY2Vzc0xpZmV0aW1lVHJhY2tlciBtX3dl
YlByb2Nlc3NMaWZldGltZVRyYWNrZXIgeyAqdGhpcyB9OwotCiAgICAgUmVmPFdlYlVzZXJDb250
ZW50Q29udHJvbGxlclByb3h5PiBtX3VzZXJDb250ZW50Q29udHJvbGxlcjsKICAgICBSZWY8Vmlz
aXRlZExpbmtTdG9yZT4gbV92aXNpdGVkTGlua1N0b3JlOwogICAgIFJlZjxXZWJzaXRlRGF0YVN0
b3JlPiBtX3dlYnNpdGVEYXRhU3RvcmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzQ2FjaGUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc0NhY2hlLmNwcAppbmRleCBjYmZiMGFiNzU2M2ExNjFjNDUxZTZmMzc4NmIxMjliYmE2YWZh
MDQ4Li44YmRmOGNmODM4OGNkYzdiZmFjZmYyYjdlNjA1ZDBhODE4ZGFhYzY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzQ2FjaGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NDYWNoZS5jcHAKQEAgLTI0Nyw3ICsyNDcsNyBA
QCBXZWJQcm9jZXNzQ2FjaGU6OkNhY2hlZFByb2Nlc3M6OkNhY2hlZFByb2Nlc3MoUmVmPFdlYlBy
b2Nlc3NQcm94eT4mJiBwcm9jZXNzKQogICAgICwgbV9ldmljdGlvblRpbWVyKFJ1bkxvb3A6Om1h
aW4oKSwgdGhpcywgJkNhY2hlZFByb2Nlc3M6OmV2aWN0aW9uVGltZXJGaXJlZCkKIHsKICAgICBS
RUxFQVNFX0FTU0VSVCghbV9wcm9jZXNzLT5wYWdlQ291bnQoKSk7Ci0gICAgUkVMRUFTRV9BU1NF
UlRfV0lUSF9NRVNTQUdFKCFtX3Byb2Nlc3MtPndlYnNpdGVEYXRhU3RvcmUoKS5oYXNQcm9jZXNz
KG1fcHJvY2Vzcy5nZXQoKSksICJPbmx5IHByb2Nlc3NlcyB3aXRoIHBhZ2VzIHNob3VsZCBiZSBy
ZWdpc3RlcmVkIHdpdGggdGhlIGRhdGEgc3RvcmUiKTsKKyAgICBSRUxFQVNFX0FTU0VSVF9XSVRI
X01FU1NBR0UoIW1fcHJvY2Vzcy0+d2Vic2l0ZURhdGFTdG9yZSgpLnByb2Nlc3NlcygpLmNvbnRh
aW5zKCptX3Byb2Nlc3MpLCAiT25seSBwcm9jZXNzZXMgd2l0aCBwYWdlcyBzaG91bGQgYmUgcmVn
aXN0ZXJlZCB3aXRoIHRoZSBkYXRhIHN0b3JlIik7CiAgICAgbV9wcm9jZXNzLT5zZXRJc0luUHJv
Y2Vzc0NhY2hlKHRydWUpOwogICAgIG1fZXZpY3Rpb25UaW1lci5zdGFydE9uZVNob3QoY2FjaGVk
UHJvY2Vzc0xpZmV0aW1lKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NMaWZldGltZU9ic2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NMaWZldGltZU9ic2VydmVyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZjQ5NzE1MWQ3NWM1ZTZmMWYyODZhYWE3OWU4YTY0N2M2YTlmMzZjMC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzTGlmZXRpbWVPYnNlcnZlci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw4
MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
LSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldl
YlByb2Nlc3NMaWZldGltZU9ic2VydmVyLmgiCi0KLSNpbmNsdWRlICJMb2dnaW5nLmgiCi0jaW5j
bHVkZSAiV2ViUGFnZVByb3h5LmgiCi0jaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCi0KLW5h
bWVzcGFjZSBXZWJLaXQgewotCi1XZWJQcm9jZXNzTGlmZXRpbWVPYnNlcnZlcjo6V2ViUHJvY2Vz
c0xpZmV0aW1lT2JzZXJ2ZXIoKQotewotfQotCi1XZWJQcm9jZXNzTGlmZXRpbWVPYnNlcnZlcjo6
fldlYlByb2Nlc3NMaWZldGltZU9ic2VydmVyKCkKLXsKLX0KLQotdm9pZCBXZWJQcm9jZXNzTGlm
ZXRpbWVPYnNlcnZlcjo6YWRkV2ViUGFnZShXZWJQYWdlUHJveHkmIHdlYlBhZ2VQcm94eSwgV2Vi
UHJvY2Vzc1Byb3h5JiBwcm9jZXNzKQotewotICAgIEFTU0VSVChwcm9jZXNzLnN0YXRlKCkgPT0g
V2ViUHJvY2Vzc1Byb3h5OjpTdGF0ZTo6UnVubmluZyk7Ci0gICAgUkVMRUFTRV9BU1NFUlQoIXBy
b2Nlc3MuaXNJblByb2Nlc3NDYWNoZSgpKTsKLSAgICBSRUxFQVNFX0FTU0VSVCghcHJvY2Vzcy5p
c1ByZXdhcm1lZCgpKTsKLQotICAgIGlmIChtX3Byb2Nlc3Nlcy5hZGQoJnByb2Nlc3MpLmlzTmV3
RW50cnkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0coTG9hZGluZywgIiVwIC0gV2ViUHJvY2Vzc0xp
ZmV0aW1lT2JzZXJ2ZXI6OmFkZFdlYlBhZ2U6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1
NjQsIHRoaXMsIHByb2Nlc3MucHJvY2Vzc0lkZW50aWZpZXIoKSwgd2ViUGFnZVByb3h5LnBhZ2VJ
RCgpLnRvVUludDY0KCkpOwotICAgICAgICB3ZWJQcm9jZXNzV2lsbE9wZW5Db25uZWN0aW9uKHBy
b2Nlc3MsICpwcm9jZXNzLmNvbm5lY3Rpb24oKSk7Ci0gICAgfQotCi0gICAgd2ViUGFnZVdpbGxP
cGVuQ29ubmVjdGlvbih3ZWJQYWdlUHJveHksICpwcm9jZXNzLmNvbm5lY3Rpb24oKSk7Ci19Ci0K
LXZvaWQgV2ViUHJvY2Vzc0xpZmV0aW1lT2JzZXJ2ZXI6OnJlbW92ZVdlYlBhZ2UoV2ViUGFnZVBy
b3h5JiB3ZWJQYWdlUHJveHksIFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcykKLXsKLSAgICAvLyBG
SVhNRTogVGhpcyBzaG91bGQgYXNzZXJ0IHRoYXQgdGhlIHBhZ2UgaXMgZWl0aGVyIGNsb3NlZCBv
ciB0aGF0IHRoZSBwcm9jZXNzIGlzIG5vIGxvbmdlciBydW5uaW5nLAotICAgIC8vIGJ1dCB3ZSBo
YXZlIHRvIG1ha2Ugc3VyZSB0aGF0IHJlbW92ZVdlYlBhZ2UgaXMgY2FsbGVkIGFmdGVyIHRoZSBj
b25uZWN0aW9uIGhhcyBiZWVuIHJlbW92ZWQgaW4gdGhhdCBjYXNlLgotICAgIEFTU0VSVChtX3By
b2Nlc3Nlcy5jb250YWlucygmcHJvY2VzcykpOwotCi0gICAgd2ViUGFnZURpZENsb3NlQ29ubmVj
dGlvbih3ZWJQYWdlUHJveHksICpwcm9jZXNzLmNvbm5lY3Rpb24oKSk7Ci0KLSAgICBpZiAobV9w
cm9jZXNzZXMucmVtb3ZlKCZwcm9jZXNzKSkgewotICAgICAgICBSRUxFQVNFX0xPRyhMb2FkaW5n
LCAiJXAgLSBXZWJQcm9jZXNzTGlmZXRpbWVPYnNlcnZlcjo6cmVtb3ZlV2ViUGFnZTogd2ViUElE
ID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCwgdGhpcywgcHJvY2Vzcy5wcm9jZXNzSWRlbnRpZmll
cigpLCB3ZWJQYWdlUHJveHkucGFnZUlEKCkudG9VSW50NjQoKSk7Ci0gICAgICAgIHdlYlByb2Nl
c3NEaWRDbG9zZUNvbm5lY3Rpb24ocHJvY2VzcywgKnByb2Nlc3MuY29ubmVjdGlvbigpKTsKLSAg
ICB9Ci19Ci0KLVdURjo6SXRlcmF0b3JSYW5nZTxIYXNoQ291bnRlZFNldDxXZWJQcm9jZXNzUHJv
eHkqPjo6Y29uc3RfaXRlcmF0b3I6OktleXM+IFdlYlByb2Nlc3NMaWZldGltZU9ic2VydmVyOjpw
cm9jZXNzZXMoKSBjb25zdAotewotICAgIEFTU0VSVChzdGQ6OmFsbF9vZihtX3Byb2Nlc3Nlcy5i
ZWdpbigpLmtleXMoKSwgbV9wcm9jZXNzZXMuZW5kKCkua2V5cygpLCBbXShXZWJQcm9jZXNzUHJv
eHkqIHByb2Nlc3MpIHsKLSAgICAgICAgcmV0dXJuIHByb2Nlc3MtPnN0YXRlKCkgPT0gV2ViUHJv
Y2Vzc1Byb3h5OjpTdGF0ZTo6UnVubmluZzsKLSAgICB9KSk7Ci0KLSAgICByZXR1cm4gbWFrZUl0
ZXJhdG9yUmFuZ2UobV9wcm9jZXNzZXMuYmVnaW4oKS5rZXlzKCksIG1fcHJvY2Vzc2VzLmVuZCgp
LmtleXMoKSk7Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NMaWZldGltZU9ic2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzTGlmZXRpbWVPYnNlcnZlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0
OWNiZmZiODQ5NDAwOGEyOWFkOTBmMmIyN2ZhZmY4YzFlNDBhNjE4Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NMaWZldGltZU9ic2VydmVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2NiArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXZWJQcm9jZXNzTGlmZXRpbWVPYnNlcnZlcl9oCi0jZGVm
aW5lIFdlYlByb2Nlc3NMaWZldGltZU9ic2VydmVyX2gKLQotI2luY2x1ZGUgPHd0Zi9IYXNoQ291
bnRlZFNldC5oPgotI2luY2x1ZGUgPHd0Zi9JdGVyYXRvclJhbmdlLmg+Ci0KLW5hbWVzcGFjZSBJ
UEMgewotY2xhc3MgQ29ubmVjdGlvbjsKLX0KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNz
IFdlYlBhZ2VQcm94eTsKLWNsYXNzIFdlYlByb2Nlc3NQcm94eTsKLQotY2xhc3MgV2ViUHJvY2Vz
c0xpZmV0aW1lT2JzZXJ2ZXIgewotcHVibGljOgotICAgIFdlYlByb2Nlc3NMaWZldGltZU9ic2Vy
dmVyKCk7Ci0gICAgdmlydHVhbCB+V2ViUHJvY2Vzc0xpZmV0aW1lT2JzZXJ2ZXIoKTsKLQotICAg
IHZvaWQgYWRkV2ViUGFnZShXZWJQYWdlUHJveHkmLCBXZWJQcm9jZXNzUHJveHkmKTsKLSAgICB2
b2lkIHJlbW92ZVdlYlBhZ2UoV2ViUGFnZVByb3h5JiwgV2ViUHJvY2Vzc1Byb3h5Jik7Ci0KLSAg
ICBXVEY6Okl0ZXJhdG9yUmFuZ2U8SGFzaENvdW50ZWRTZXQ8V2ViUHJvY2Vzc1Byb3h5Kj46OmNv
bnN0X2l0ZXJhdG9yOjpLZXlzPiBwcm9jZXNzZXMoKSBjb25zdDsKLQotICAgIGJvb2wgaGFzUHJv
Y2VzcyhXZWJQcm9jZXNzUHJveHkqIHByb2Nlc3MpIGNvbnN0IHsgcmV0dXJuIG1fcHJvY2Vzc2Vz
LmNvbnRhaW5zKHByb2Nlc3MpOyB9Ci0KLXByaXZhdGU6Ci0gICAgZnJpZW5kIGNsYXNzIFdlYlBy
b2Nlc3NMaWZldGltZVRyYWNrZXI7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgd2ViUHJvY2Vzc1dpbGxP
cGVuQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmLCBJUEM6OkNvbm5lY3Rpb24mKSB7IH0KLSAg
ICB2aXJ0dWFsIHZvaWQgd2ViUGFnZVdpbGxPcGVuQ29ubmVjdGlvbihXZWJQYWdlUHJveHkmLCBJ
UEM6OkNvbm5lY3Rpb24mKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgd2ViUGFnZURpZENsb3NlQ29u
bmVjdGlvbihXZWJQYWdlUHJveHkmLCBJUEM6OkNvbm5lY3Rpb24mKSB7IH0KLSAgICB2aXJ0dWFs
IHZvaWQgd2ViUHJvY2Vzc0RpZENsb3NlQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmLCBJUEM6
OkNvbm5lY3Rpb24mKSB7IH0KLQotICAgIEhhc2hDb3VudGVkU2V0PFdlYlByb2Nlc3NQcm94eSo+
IG1fcHJvY2Vzc2VzOwotfTsKLQotfQotCi0jZW5kaWYgLy8gV2ViUHJvY2Vzc0xpZmV0aW1lT2Jz
ZXJ2ZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc0xp
ZmV0aW1lVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzTGlm
ZXRpbWVUcmFja2VyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2E1MDhlMTMy
MzIxYTcwY2FhYzA3OWMxMDk3NTI5MTY1NWQ4MzFiNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
TGlmZXRpbWVUcmFja2VyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDg0ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViUHJvY2Vzc0xpZmV0aW1l
VHJhY2tlci5oIgotCi0jaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCi0jaW5jbHVkZSAiV2ViUHJv
Y2Vzc0xpZmV0aW1lT2JzZXJ2ZXIuaCIKLSNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKLQot
bmFtZXNwYWNlIFdlYktpdCB7Ci0KLVdlYlByb2Nlc3NMaWZldGltZVRyYWNrZXI6OldlYlByb2Nl
c3NMaWZldGltZVRyYWNrZXIoV2ViUGFnZVByb3h5JiB3ZWJQYWdlUHJveHkpCi0gICAgOiBtX3dl
YlBhZ2VQcm94eSh3ZWJQYWdlUHJveHkpCi17Ci19Ci0KLVdlYlByb2Nlc3NMaWZldGltZVRyYWNr
ZXI6On5XZWJQcm9jZXNzTGlmZXRpbWVUcmFja2VyKCkKLXsKLX0KLQotdm9pZCBXZWJQcm9jZXNz
TGlmZXRpbWVUcmFja2VyOjphZGRPYnNlcnZlcihXZWJQcm9jZXNzTGlmZXRpbWVPYnNlcnZlciYg
b2JzZXJ2ZXIpCi17Ci0gICAgQVNTRVJUKCFtX29ic2VydmVycy5jb250YWlucygmb2JzZXJ2ZXIp
KTsKLQotICAgIG1fb2JzZXJ2ZXJzLmFkZCgmb2JzZXJ2ZXIpOwotCi0gICAgaWYgKHByb2Nlc3NJ
c1J1bm5pbmcobV93ZWJQYWdlUHJveHkucHJvY2VzcygpKSkKLSAgICAgICAgb2JzZXJ2ZXIuYWRk
V2ViUGFnZShtX3dlYlBhZ2VQcm94eSwgbV93ZWJQYWdlUHJveHkucHJvY2VzcygpKTsKLX0KLQot
dm9pZCBXZWJQcm9jZXNzTGlmZXRpbWVUcmFja2VyOjp3ZWJQYWdlRW50ZXJpbmdXZWJQcm9jZXNz
KFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcykKLXsKLSAgICBBU1NFUlQocHJvY2Vzc0lzUnVubmlu
Zyhwcm9jZXNzKSk7Ci0KLSAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDogbV9vYnNlcnZlcnMpCi0g
ICAgICAgIG9ic2VydmVyLT5hZGRXZWJQYWdlKG1fd2ViUGFnZVByb3h5LCBwcm9jZXNzKTsKLX0K
LQotdm9pZCBXZWJQcm9jZXNzTGlmZXRpbWVUcmFja2VyOjp3ZWJQYWdlTGVhdmluZ1dlYlByb2Nl
c3MoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzKQotewotICAgIEFTU0VSVChwcm9jZXNzSXNSdW5u
aW5nKHByb2Nlc3MpKTsKLQotICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBtX29ic2VydmVycykK
LSAgICAgICAgb2JzZXJ2ZXItPnJlbW92ZVdlYlBhZ2UobV93ZWJQYWdlUHJveHksIHByb2Nlc3Mp
OwotfQotCi12b2lkIFdlYlByb2Nlc3NMaWZldGltZVRyYWNrZXI6OnBhZ2VXYXNJbnZhbGlkYXRl
ZCgpCi17Ci0gICAgaWYgKCFwcm9jZXNzSXNSdW5uaW5nKG1fd2ViUGFnZVByb3h5LnByb2Nlc3Mo
KSkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBtX29ic2Vy
dmVycykKLSAgICAgICAgb2JzZXJ2ZXItPnJlbW92ZVdlYlBhZ2UobV93ZWJQYWdlUHJveHksIG1f
d2ViUGFnZVByb3h5LnByb2Nlc3MoKSk7Ci19Ci0KLWJvb2wgV2ViUHJvY2Vzc0xpZmV0aW1lVHJh
Y2tlcjo6cHJvY2Vzc0lzUnVubmluZyhXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MpCi17Ci0gICAg
cmV0dXJuIHByb2Nlc3Muc3RhdGUoKSA9PSBXZWJQcm9jZXNzUHJveHk6OlN0YXRlOjpSdW5uaW5n
OwotfQotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
TGlmZXRpbWVUcmFja2VyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzTGlm
ZXRpbWVUcmFja2VyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEyODc1YWU2MzQw
ZWRhNGM5YjkwMTMyMzk0ZjkxOTEyOTQ5MTZiNGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc0xp
ZmV0aW1lVHJhY2tlci5oCisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0g
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpZm5kZWYgV2ViUHJvY2Vzc0xpZmV0aW1lVHJhY2tlcl9oCi0jZGVmaW5lIFdlYlByb2Nl
c3NMaWZldGltZVRyYWNrZXJfaAotCi0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KLQotbmFtZXNw
YWNlIElQQyB7Ci1jbGFzcyBDb25uZWN0aW9uOwotfQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQot
Y2xhc3MgV2ViUGFnZVByb3h5OwotY2xhc3MgV2ViUHJvY2Vzc0xpZmV0aW1lT2JzZXJ2ZXI7Ci1j
bGFzcyBXZWJQcm9jZXNzUHJveHk7Ci0KLWNsYXNzIFdlYlByb2Nlc3NMaWZldGltZVRyYWNrZXIg
ewotcHVibGljOgotICAgIGV4cGxpY2l0IFdlYlByb2Nlc3NMaWZldGltZVRyYWNrZXIoV2ViUGFn
ZVByb3h5Jik7Ci0gICAgfldlYlByb2Nlc3NMaWZldGltZVRyYWNrZXIoKTsKLQotICAgIHZvaWQg
YWRkT2JzZXJ2ZXIoV2ViUHJvY2Vzc0xpZmV0aW1lT2JzZXJ2ZXImKTsKLQotICAgIHZvaWQgd2Vi
UGFnZUVudGVyaW5nV2ViUHJvY2VzcyhXZWJQcm9jZXNzUHJveHkmKTsKLSAgICB2b2lkIHdlYlBh
Z2VMZWF2aW5nV2ViUHJvY2VzcyhXZWJQcm9jZXNzUHJveHkmKTsKLQotICAgIHZvaWQgcGFnZVdh
c0ludmFsaWRhdGVkKCk7Ci0KLXByaXZhdGU6Ci0gICAgc3RhdGljIGJvb2wgcHJvY2Vzc0lzUnVu
bmluZyhXZWJQcm9jZXNzUHJveHkmKTsKLQotICAgIFdlYlBhZ2VQcm94eSYgbV93ZWJQYWdlUHJv
eHk7Ci0KLSAgICBIYXNoU2V0PFdlYlByb2Nlc3NMaWZldGltZU9ic2VydmVyKj4gbV9vYnNlcnZl
cnM7Ci19OwotCi19Ci0KLSNlbmRpZiAvLyBXZWJQcm9jZXNzTGlmZXRpbWVUcmFja2VyX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDczZWQ5OGM0
ODJkYjMzYzE4MzFkM2RmMTk4YzU3ZDRjNDIwY2FlNzEuLjQwNGI0Mzg5NzViNTIxOGI5MWFhYTY1
ZDA2ZDliMDcyYTZkOWNhOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcApAQCAtMjIwLDYgKzIyMCwzMyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6c2V0
V2Vic2l0ZURhdGFTdG9yZShXZWJzaXRlRGF0YVN0b3JlJiBkYXRhU3RvcmUpCiB7CiAgICAgQVNT
RVJUKCFtX3dlYnNpdGVEYXRhU3RvcmUpOwogICAgIG1fd2Vic2l0ZURhdGFTdG9yZSA9ICZkYXRh
U3RvcmU7CisgICAgdXBkYXRlUmVnaXN0cmF0aW9uV2l0aERhdGFTdG9yZSgpOworfQorCit2b2lk
IFdlYlByb2Nlc3NQcm94eTo6dXBkYXRlUmVnaXN0cmF0aW9uV2l0aERhdGFTdG9yZSgpCit7Cisg
ICAgaWYgKCFtX3dlYnNpdGVEYXRhU3RvcmUpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBi
b29sIHNob3VsZEJlUmVnaXN0ZXJlZCA9IHByb2Nlc3NQb29sKCkuZHVtbXlQcm9jZXNzUHJveHko
KSAhPSB0aGlzICYmIChwYWdlQ291bnQoKSB8fCBwcm92aXNpb25hbFBhZ2VDb3VudCgpKTsKKyAg
ICBpZiAoc2hvdWxkQmVSZWdpc3RlcmVkKQorICAgICAgICBtX3dlYnNpdGVEYXRhU3RvcmUtPnJl
Z2lzdGVyUHJvY2VzcygqdGhpcyk7CisgICAgZWxzZQorICAgICAgICBtX3dlYnNpdGVEYXRhU3Rv
cmUtPnVucmVnaXN0ZXJQcm9jZXNzKCp0aGlzKTsKK30KKwordm9pZCBXZWJQcm9jZXNzUHJveHk6
OmFkZFByb3Zpc2lvbmFsUGFnZVByb3h5KFByb3Zpc2lvbmFsUGFnZVByb3h5JiBwcm92aXNpb25h
bFBhZ2UpCit7CisgICAgQVNTRVJUKCFtX3Byb3Zpc2lvbmFsUGFnZXMuY29udGFpbnMoJnByb3Zp
c2lvbmFsUGFnZSkpOworICAgIG1fcHJvdmlzaW9uYWxQYWdlcy5hZGQoJnByb3Zpc2lvbmFsUGFn
ZSk7CisgICAgdXBkYXRlUmVnaXN0cmF0aW9uV2l0aERhdGFTdG9yZSgpOworfQorCit2b2lkIFdl
YlByb2Nlc3NQcm94eTo6cmVtb3ZlUHJvdmlzaW9uYWxQYWdlUHJveHkoUHJvdmlzaW9uYWxQYWdl
UHJveHkmIHByb3Zpc2lvbmFsUGFnZSkKK3sKKyAgICBBU1NFUlQobV9wcm92aXNpb25hbFBhZ2Vz
LmNvbnRhaW5zKCZwcm92aXNpb25hbFBhZ2UpKTsKKyAgICBtX3Byb3Zpc2lvbmFsUGFnZXMucmVt
b3ZlKCZwcm92aXNpb25hbFBhZ2UpOworICAgIHVwZGF0ZVJlZ2lzdHJhdGlvbldpdGhEYXRhU3Rv
cmUoKTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMoUHJvY2Vz
c0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJiBsYXVuY2hPcHRpb25zKQpAQCAtMjc3LDEyICszMDQs
NiBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Y29ubmVjdGlvbldpbGxPcGVuKElQQzo6Q29ubmVj
dGlvbiYgY29ubmVjdGlvbikKICNpZiBFTkFCTEUoU0VDX0lURU1fU0hJTSkKICAgICBTZWNJdGVt
U2hpbVByb3h5OjpzaW5nbGV0b24oKS5pbml0aWFsaXplQ29ubmVjdGlvbihjb25uZWN0aW9uKTsK
ICNlbmRpZgotCi0gICAgZm9yIChhdXRvJiBwYWdlIDogbV9wYWdlTWFwLnZhbHVlcygpKQotICAg
ICAgICBwYWdlLT5jb25uZWN0aW9uV2lsbE9wZW4oY29ubmVjdGlvbik7Ci0KLSAgICBmb3IgKGF1
dG8qIHByb3Zpc2lvbmFsUGFnZSA6IG1fcHJvdmlzaW9uYWxQYWdlcykKLSAgICAgICAgcHJvdmlz
aW9uYWxQYWdlLT5jb25uZWN0aW9uV2lsbE9wZW4oY29ubmVjdGlvbik7CiB9CiAKIHZvaWQgV2Vi
UHJvY2Vzc1Byb3h5Ojpwcm9jZXNzV2lsbFNodXREb3duKElQQzo6Q29ubmVjdGlvbiYgY29ubmVj
dGlvbikKQEAgLTI5Miw5ICszMTMsNiBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6cHJvY2Vzc1dp
bGxTaHV0RG93bihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCiAjaWYgUExBVEZPUk0oTUFD
KSAmJiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCiAgICAgcHJvY2Vz
c1Bvb2woKS5zdG9wRGlzcGxheUxpbmtzKGNvbm5lY3Rpb24pOwogI2VuZGlmCi0KLSAgICBmb3Ig
KGF1dG8mIHBhZ2UgOiBtX3BhZ2VNYXAudmFsdWVzKCkpCi0gICAgICAgIHBhZ2UtPndlYlByb2Nl
c3NXaWxsU2h1dERvd24oKTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OnNodXREb3duKCkK
QEAgLTM4Niw2ICs0MDQsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6YWRkRXhpc3RpbmdXZWJQ
YWdlKFdlYlBhZ2VQcm94eSYgd2ViUGFnZSwgQmVnaW5zVXNpbmdEYXRhUwogICAgIG1fcGFnZU1h
cC5zZXQod2ViUGFnZS5wYWdlSUQoKSwgJndlYlBhZ2UpOwogICAgIGdsb2JhbFBhZ2VNYXAoKS5z
ZXQod2ViUGFnZS5wYWdlSUQoKSwgJndlYlBhZ2UpOwogCisgICAgdXBkYXRlUmVnaXN0cmF0aW9u
V2l0aERhdGFTdG9yZSgpOwogICAgIHVwZGF0ZUJhY2tncm91bmRSZXNwb25zaXZlbmVzc1RpbWVy
KCk7CiB9CiAKQEAgLTQxMSw2ICs0MzAsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6cmVtb3Zl
V2ViUGFnZShXZWJQYWdlUHJveHkmIHdlYlBhZ2UsIEVuZHNVc2luZ0RhdGFTdG9yZSBlbgogICAg
ICAgICBtX3Byb2Nlc3NQb29sLT5wYWdlRW5kVXNpbmdXZWJzaXRlRGF0YVN0b3JlKHdlYlBhZ2Uu
cGFnZUlEKCksIHdlYlBhZ2Uud2Vic2l0ZURhdGFTdG9yZSgpKTsKIAogICAgIHJlbW92ZVZpc2l0
ZWRMaW5rU3RvcmVVc2VyKHdlYlBhZ2UudmlzaXRlZExpbmtTdG9yZSgpLCB3ZWJQYWdlLnBhZ2VJ
RCgpKTsKKyAgICB1cGRhdGVSZWdpc3RyYXRpb25XaXRoRGF0YVN0b3JlKCk7CiAKICAgICB1cGRh
dGVCYWNrZ3JvdW5kUmVzcG9uc2l2ZW5lc3NUaW1lcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IDRiN2NhNGRiNjJmZjBkNzJhNTNiNTQyZjM4NWZk
ZDhjNjE2Y2NmMGMuLjZlNGE2OGU2YzVkNGIwYTM0ODQwODZhYmU1ODI0MGY0NTQ5MGJjMTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0xMzksOCArMTM5
LDggQEAgcHVibGljOgogICAgIGVudW0gY2xhc3MgRW5kc1VzaW5nRGF0YVN0b3JlIDogYm9vbCB7
IE5vLCBZZXMgfTsKICAgICB2b2lkIHJlbW92ZVdlYlBhZ2UoV2ViUGFnZVByb3h5JiwgRW5kc1Vz
aW5nRGF0YVN0b3JlKTsKIAotICAgIHZvaWQgYWRkUHJvdmlzaW9uYWxQYWdlUHJveHkoUHJvdmlz
aW9uYWxQYWdlUHJveHkmIHByb3Zpc2lvbmFsUGFnZSkgeyBBU1NFUlQoIW1fcHJvdmlzaW9uYWxQ
YWdlcy5jb250YWlucygmcHJvdmlzaW9uYWxQYWdlKSk7IG1fcHJvdmlzaW9uYWxQYWdlcy5hZGQo
JnByb3Zpc2lvbmFsUGFnZSk7IH0KLSAgICB2b2lkIHJlbW92ZVByb3Zpc2lvbmFsUGFnZVByb3h5
KFByb3Zpc2lvbmFsUGFnZVByb3h5JiBwcm92aXNpb25hbFBhZ2UpIHsgQVNTRVJUKG1fcHJvdmlz
aW9uYWxQYWdlcy5jb250YWlucygmcHJvdmlzaW9uYWxQYWdlKSk7IG1fcHJvdmlzaW9uYWxQYWdl
cy5yZW1vdmUoJnByb3Zpc2lvbmFsUGFnZSk7IH0KKyAgICB2b2lkIGFkZFByb3Zpc2lvbmFsUGFn
ZVByb3h5KFByb3Zpc2lvbmFsUGFnZVByb3h5Jik7CisgICAgdm9pZCByZW1vdmVQcm92aXNpb25h
bFBhZ2VQcm94eShQcm92aXNpb25hbFBhZ2VQcm94eSYpOwogICAgIAogICAgIHR5cGVuYW1lIFdl
YlBhZ2VQcm94eU1hcDo6VmFsdWVzQ29uc3RJdGVyYXRvclJhbmdlIHBhZ2VzKCkgY29uc3QgeyBy
ZXR1cm4gbV9wYWdlTWFwLnZhbHVlcygpOyB9CiAgICAgdW5zaWduZWQgcGFnZUNvdW50KCkgY29u
c3QgeyByZXR1cm4gbV9wYWdlTWFwLnNpemUoKTsgfQpAQCAtMzk0LDYgKzM5NCw4IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBkaWRDb2xsZWN0UHJld2FybUluZm9ybWF0aW9uKGNvbnN0IFdlYkNvcmU6
OlJlZ2lzdHJhYmxlRG9tYWluJiwgY29uc3QgV2ViQ29yZTo6UHJld2FybUluZm9ybWF0aW9uJik7
CiAKICAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlRm9yUmVzb3VyY2VMaW1pdFRlcm1pbmF0
aW9uKGNvbnN0IFN0cmluZyYgbGltaXRLZXkpOworICAgIAorICAgIHZvaWQgdXBkYXRlUmVnaXN0
cmF0aW9uV2l0aERhdGFTdG9yZSgpOwogCiAgICAgZW51bSBjbGFzcyBJc1dlYWsgeyBObywgWWVz
IH07CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgV2Vha09yU3Ryb25nUHRyIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZS5jcHAKaW5kZXggMGU5NzUyMGQwMWFmZTViNWNiMWIyY2UxODc2YzgwNTI2ZGFiYjQw
Yy4uZjQyYWVmNTNhMjU5OWQwYTE4MjljOGE0ZWFmMzg1ZDZhNzBkMTRmOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5jcHAKQEAgLTE2OCwyMCArMTY4LDIzIEBAIFdlYnNpdGVEYXRhU3RvcmUqIFdlYnNpdGVEYXRh
U3RvcmU6OmV4aXN0aW5nTm9uRGVmYXVsdERhdGFTdG9yZUZvclNlc3Npb25JRChQQUw6CiAgICAg
cmV0dXJuIHNlc3Npb25JRC5pc1ZhbGlkKCkgJiYgc2Vzc2lvbklEICE9IFBBTDo6U2Vzc2lvbklE
OjpkZWZhdWx0U2Vzc2lvbklEKCkgPyBub25EZWZhdWx0RGF0YVN0b3JlcygpLmdldChzZXNzaW9u
SUQpIDogbnVsbHB0cjsKIH0KIAotV2ViUHJvY2Vzc1Bvb2wqIFdlYnNpdGVEYXRhU3RvcmU6OnBy
b2Nlc3NQb29sRm9yQ29va2llU3RvcmFnZU9wZXJhdGlvbnMoKQordm9pZCBXZWJzaXRlRGF0YVN0
b3JlOjpyZWdpc3RlclByb2Nlc3MoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzKQogewotICAgIGF1
dG8gcG9vbHMgPSBwcm9jZXNzUG9vbHMoMSwgZmFsc2UpOwotICAgIGlmICghcG9vbHMuaXNFbXB0
eSgpKQotICAgICAgICByZXR1cm4gcG9vbHMuYmVnaW4oKS0+Z2V0KCk7CisgICAgQVNTRVJUKHBy
b2Nlc3MucGFnZUNvdW50KCkgfHwgcHJvY2Vzcy5wcm92aXNpb25hbFBhZ2VDb3VudCgpKTsKKyAg
ICBtX3Byb2Nlc3Nlcy5hZGQocHJvY2Vzcyk7Cit9CiAKLSAgICBmb3IgKGF1dG8qIHByb2Nlc3NQ
b29sIDogV2ViUHJvY2Vzc1Bvb2w6OmFsbFByb2Nlc3NQb29scygpKSB7Ci0gICAgICAgIGZvciAo
YXV0byYgcHJvY2VzcyA6IHByb2Nlc3NQb29sLT5wcm9jZXNzZXMoKSkgewotICAgICAgICAgICAg
aWYgKHByb2Nlc3MgIT0gcHJvY2Vzc1Bvb2wtPmR1bW15UHJvY2Vzc1Byb3h5KCkgJiYgcHJvY2Vz
cy0+cGFnZUNvdW50KCkgJiYgJnByb2Nlc3MtPndlYnNpdGVEYXRhU3RvcmUoKSA9PSB0aGlzKQot
ICAgICAgICAgICAgICAgIHJldHVybiBwcm9jZXNzUG9vbDsKLSAgICAgICAgfQotICAgIH0KK3Zv
aWQgV2Vic2l0ZURhdGFTdG9yZTo6dW5yZWdpc3RlclByb2Nlc3MoV2ViUHJvY2Vzc1Byb3h5JiBw
cm9jZXNzKQoreworICAgIEFTU0VSVCghcHJvY2Vzcy5wYWdlQ291bnQoKSk7CisgICAgQVNTRVJU
KCFwcm9jZXNzLnByb3Zpc2lvbmFsUGFnZUNvdW50KCkpOworICAgIG1fcHJvY2Vzc2VzLnJlbW92
ZShwcm9jZXNzKTsKK30KIAotICAgIHJldHVybiBudWxscHRyOworV2ViUHJvY2Vzc1Bvb2wqIFdl
YnNpdGVEYXRhU3RvcmU6OnByb2Nlc3NQb29sRm9yQ29va2llU3RvcmFnZU9wZXJhdGlvbnMoKQor
eworICAgIGF1dG8gcG9vbHMgPSBwcm9jZXNzUG9vbHMoMSwgZmFsc2UpOworICAgIHJldHVybiBw
b29scy5pc0VtcHR5KCkgPyBudWxscHRyIDogcG9vbHMuYmVnaW4oKS0+Z2V0KCk7CiB9CiAKIHZv
aWQgV2Vic2l0ZURhdGFTdG9yZTo6cmVzb2x2ZURpcmVjdG9yaWVzSWZOZWNlc3NhcnkoKQpAQCAt
NDMwLDcgKzQzMyw3IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6ZmV0Y2hEYXRhQW5kQXBwbHko
T3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBPCiAgICAgICAgIGZvciAoYXV0
byYgcHJvY2VzcyA6IHByb2Nlc3NlcygpKSB7CiAgICAgICAgICAgICBzd2l0Y2ggKHdlYlByb2Nl
c3NBY2Nlc3NUeXBlKSB7CiAgICAgICAgICAgICBjYXNlIFByb2Nlc3NBY2Nlc3NUeXBlOjpPbmx5
SWZMYXVuY2hlZDoKLSAgICAgICAgICAgICAgICBpZiAoIXByb2Nlc3MtPmNhblNlbmRNZXNzYWdl
KCkpCisgICAgICAgICAgICAgICAgaWYgKCFwcm9jZXNzLmNhblNlbmRNZXNzYWdlKCkpCiAgICAg
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIGJyZWFrOwogCkBAIC00
NDQsNyArNDQ3LDcgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpmZXRjaERhdGFBbmRBcHBseShP
cHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIE8KICAgICAgICAgICAgIH0KIAog
ICAgICAgICAgICAgY2FsbGJhY2tBZ2dyZWdhdG9yLT5hZGRQZW5kaW5nQ2FsbGJhY2soKTsKLSAg
ICAgICAgICAgIHByb2Nlc3MtPmZldGNoV2Vic2l0ZURhdGEobV9zZXNzaW9uSUQsIGRhdGFUeXBl
cywgW2NhbGxiYWNrQWdncmVnYXRvcl0oV2Vic2l0ZURhdGEgd2Vic2l0ZURhdGEpIHsKKyAgICAg
ICAgICAgIHByb2Nlc3MuZmV0Y2hXZWJzaXRlRGF0YShtX3Nlc3Npb25JRCwgZGF0YVR5cGVzLCBb
Y2FsbGJhY2tBZ2dyZWdhdG9yXShXZWJzaXRlRGF0YSB3ZWJzaXRlRGF0YSkgewogICAgICAgICAg
ICAgICAgIGNhbGxiYWNrQWdncmVnYXRvci0+cmVtb3ZlUGVuZGluZ0NhbGxiYWNrKFdURk1vdmUo
d2Vic2l0ZURhdGEpKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9CkBAIC03NDIsNyArNzQ1
LDcgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpyZW1vdmVEYXRhKE9wdGlvblNldDxXZWJzaXRl
RGF0YVR5cGU+IGRhdGFUeXBlcywgV2FsbFRpbWUKICAgICAgICAgZm9yIChhdXRvJiBwcm9jZXNz
IDogcHJvY2Vzc2VzKCkpIHsKICAgICAgICAgICAgIHN3aXRjaCAod2ViUHJvY2Vzc0FjY2Vzc1R5
cGUpIHsKICAgICAgICAgICAgIGNhc2UgUHJvY2Vzc0FjY2Vzc1R5cGU6Ok9ubHlJZkxhdW5jaGVk
OgotICAgICAgICAgICAgICAgIGlmICghcHJvY2Vzcy0+Y2FuU2VuZE1lc3NhZ2UoKSkKKyAgICAg
ICAgICAgICAgICBpZiAoIXByb2Nlc3MuY2FuU2VuZE1lc3NhZ2UoKSkKICAgICAgICAgICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAKQEAgLTc1Niw3ICs3NTks
NyBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnJlbW92ZURhdGEoT3B0aW9uU2V0PFdlYnNpdGVE
YXRhVHlwZT4gZGF0YVR5cGVzLCBXYWxsVGltZQogICAgICAgICAgICAgfQogCiAgICAgICAgICAg
ICBjYWxsYmFja0FnZ3JlZ2F0b3ItPmFkZFBlbmRpbmdDYWxsYmFjaygpOwotICAgICAgICAgICAg
cHJvY2Vzcy0+ZGVsZXRlV2Vic2l0ZURhdGEobV9zZXNzaW9uSUQsIGRhdGFUeXBlcywgbW9kaWZp
ZWRTaW5jZSwgW2NhbGxiYWNrQWdncmVnYXRvcl0geworICAgICAgICAgICAgcHJvY2Vzcy5kZWxl
dGVXZWJzaXRlRGF0YShtX3Nlc3Npb25JRCwgZGF0YVR5cGVzLCBtb2RpZmllZFNpbmNlLCBbY2Fs
bGJhY2tBZ2dyZWdhdG9yXSB7CiAgICAgICAgICAgICAgICAgY2FsbGJhY2tBZ2dyZWdhdG9yLT5y
ZW1vdmVQZW5kaW5nQ2FsbGJhY2soKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9CkBAIC0x
MDA1LDcgKzEwMDgsNyBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnJlbW92ZURhdGEoT3B0aW9u
U2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBjb25zdCBWZQogICAgICAgICBmb3IgKGF1
dG8mIHByb2Nlc3MgOiBwcm9jZXNzZXMoKSkgewogICAgICAgICAgICAgc3dpdGNoICh3ZWJQcm9j
ZXNzQWNjZXNzVHlwZSkgewogICAgICAgICAgICAgY2FzZSBQcm9jZXNzQWNjZXNzVHlwZTo6T25s
eUlmTGF1bmNoZWQ6Ci0gICAgICAgICAgICAgICAgaWYgKCFwcm9jZXNzLT5jYW5TZW5kTWVzc2Fn
ZSgpKQorICAgICAgICAgICAgICAgIGlmICghcHJvY2Vzcy5jYW5TZW5kTWVzc2FnZSgpKQogICAg
ICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICBicmVhazsKIApAQCAt
MTAyMCw3ICsxMDIzLDcgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpyZW1vdmVEYXRhKE9wdGlv
blNldDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgY29uc3QgVmUKIAogICAgICAgICAgICAg
Y2FsbGJhY2tBZ2dyZWdhdG9yLT5hZGRQZW5kaW5nQ2FsbGJhY2soKTsKIAotICAgICAgICAgICAg
cHJvY2Vzcy0+ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKG1fc2Vzc2lvbklELCBkYXRhVHlw
ZXMsIG9yaWdpbnMsIFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsKKyAgICAgICAgICAgIHByb2Nlc3Mu
ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKG1fc2Vzc2lvbklELCBkYXRhVHlwZXMsIG9yaWdp
bnMsIFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsKICAgICAgICAgICAgICAgICBjYWxsYmFja0FnZ3Jl
Z2F0b3ItPnJlbW92ZVBlbmRpbmdDYWxsYmFjaygpOwogICAgICAgICAgICAgfSk7CiAgICAgICAg
IH0KQEAgLTE3NTMsNyArMTc1Niw3IEBAIEhhc2hTZXQ8UmVmUHRyPFdlYlByb2Nlc3NQb29sPj4g
V2Vic2l0ZURhdGFTdG9yZTo6cHJvY2Vzc1Bvb2xzKHNpemVfdCBjb3VudCwgYm9vCiB7CiAgICAg
SGFzaFNldDxSZWZQdHI8V2ViUHJvY2Vzc1Bvb2w+PiBwcm9jZXNzUG9vbHM7CiAgICAgZm9yIChh
dXRvJiBwcm9jZXNzIDogcHJvY2Vzc2VzKCkpIHsKLSAgICAgICAgaWYgKGF1dG8qIHByb2Nlc3NQ
b29sID0gcHJvY2Vzcy0+cHJvY2Vzc1Bvb2xJZkV4aXN0cygpKQorICAgICAgICBpZiAoYXV0byog
cHJvY2Vzc1Bvb2wgPSBwcm9jZXNzLnByb2Nlc3NQb29sSWZFeGlzdHMoKSkKICAgICAgICAgICAg
IHByb2Nlc3NQb29scy5hZGQocHJvY2Vzc1Bvb2wpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4
IDBiMjM1MDE2NTBmZGNjYTczMTZhYzViNWZiZjQ1NDM1MTE2YjQxODUuLmYwN2NjNjE4ZDZjMTEz
MWU1MDU0YTE0ODIxNjMwNWFmZjlmZmU0ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTI4LDcgKzI4LDYg
QEAKICNpbmNsdWRlICJMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIuaCIKICNpbmNsdWRlICJO
ZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIldlYkRldmljZU9y
aWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIldlYlByb2Nl
c3NMaWZldGltZU9ic2VydmVyLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZUNsaWVudC5o
IgogI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9Db29raWUuaD4KQEAgLTQ0LDYgKzQzLDcgQEAKICNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVW5pcXVlUmVm
Lmg+CisjaW5jbHVkZSA8d3RmL1dlYWtIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIu
aD4KICNpbmNsdWRlIDx3dGYvV29ya1F1ZXVlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CkBAIC03Myw2ICs3Myw3IEBAIGNsYXNzIERldmljZUlkSGFzaFNhbHRTdG9yYWdlOwog
Y2xhc3MgU09BdXRob3JpemF0aW9uQ29vcmRpbmF0b3I7CiBjbGFzcyBXZWJQYWdlUHJveHk7CiBj
bGFzcyBXZWJQcm9jZXNzUG9vbDsKK2NsYXNzIFdlYlByb2Nlc3NQcm94eTsKIGNsYXNzIFdlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTsKIGVudW0gY2xhc3MgV2Vic2l0ZURhdGFGZXRjaE9w
dGlvbjsKIGVudW0gY2xhc3MgV2Vic2l0ZURhdGFUeXBlOwpAQCAtOTAsNyArOTEsNyBAQCBlbnVt
IGNsYXNzIFN0b3JhZ2VBY2Nlc3NQcm9tcHRTdGF0dXM7CiBzdHJ1Y3QgUGx1Z2luTW9kdWxlSW5m
bzsKICNlbmRpZgogCi1jbGFzcyBXZWJzaXRlRGF0YVN0b3JlIDogcHVibGljIFJlZkNvdW50ZWQ8
V2Vic2l0ZURhdGFTdG9yZT4sIHB1YmxpYyBXZWJQcm9jZXNzTGlmZXRpbWVPYnNlcnZlciwgcHVi
bGljIElkZW50aWZpZWQ8V2Vic2l0ZURhdGFTdG9yZT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxX
ZWJzaXRlRGF0YVN0b3JlPiAgeworY2xhc3MgV2Vic2l0ZURhdGFTdG9yZSA6IHB1YmxpYyBSZWZD
b3VudGVkPFdlYnNpdGVEYXRhU3RvcmU+LCBwdWJsaWMgSWRlbnRpZmllZDxXZWJzaXRlRGF0YVN0
b3JlPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPFdlYnNpdGVEYXRhU3RvcmU+ICB7CiBwdWJsaWM6
CiAgICAgc3RhdGljIFJlZjxXZWJzaXRlRGF0YVN0b3JlPiBjcmVhdGVOb25QZXJzaXN0ZW50KCk7
CiAgICAgc3RhdGljIFJlZjxXZWJzaXRlRGF0YVN0b3JlPiBjcmVhdGUoUmVmPFdlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uPiYmLCBQQUw6OlNlc3Npb25JRCk7CkBAIC0xMDAsNiArMTAxLDEx
IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNQZXJzaXN0ZW50KCkgY29uc3QgeyByZXR1cm4gIW1f
c2Vzc2lvbklELmlzRXBoZW1lcmFsKCk7IH0KICAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQo
KSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQorICAgIAorICAgIHZvaWQgcmVnaXN0ZXJQ
cm9jZXNzKFdlYlByb2Nlc3NQcm94eSYpOworICAgIHZvaWQgdW5yZWdpc3RlclByb2Nlc3MoV2Vi
UHJvY2Vzc1Byb3h5Jik7CisgICAgCisgICAgY29uc3QgV2Vha0hhc2hTZXQ8V2ViUHJvY2Vzc1By
b3h5PiYgcHJvY2Vzc2VzKCkgY29uc3QgeyByZXR1cm4gbV9wcm9jZXNzZXM7IH0KIAogICAgIGJv
b2wgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoKSBjb25zdDsKICAgICB2b2lkIHNldFJl
c291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGJvb2wpOwpAQCAtMzEwLDYgKzMxNiw4IEBAIHBy
aXZhdGU6CiAjZW5kaWYKIAogICAgIEhhc2hTZXQ8V2ViQ29yZTo6Q29va2llPiBtX3BlbmRpbmdD
b29raWVzOworICAgIAorICAgIFdlYWtIYXNoU2V0PFdlYlByb2Nlc3NQcm94eT4gbV9wcm9jZXNz
ZXM7CiAKICAgICBTdHJpbmcgbV9ib3VuZEludGVyZmFjZUlkZW50aWZpZXI7CiAgICAgQWxsb3dz
Q2VsbHVsYXJBY2Nlc3MgbV9hbGxvd3NDZWxsdWxhckFjY2VzcyB7IEFsbG93c0NlbGx1bGFyQWNj
ZXNzOjpZZXMgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDlkODJmMmQ0ZGU0YTZlZGIzMGE4YjAwNmFhNzNjZmE3NmVmM2NmNjEuLmMz
NjExY2JmY2I4NDA4MjllNDJkMTExNmU0NmM1YjY4MzE0NGZjMDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzY3LDggKzM2Nyw2IEBA
CiAJCTFBRjQ1OTJGMTk0NjRCMjAwMEY5RDRBMiAvKiBXS0Vycm9yLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUY0NTkyRDE5NDY0QjIwMDBGOUQ0QTIg
LyogV0tFcnJvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsg
fTsKIAkJMUFGNENFRjAxOEJDNDgxODAwQkMyRDM0IC8qIFZpc2l0ZWRMaW5rVGFibGVDb250cm9s
bGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUY0
Q0VFRTE4QkM0ODE4MDBCQzJEMzQgLyogVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXIuaCAqLzsg
fTsKIAkJMUFGQTNBQzkxOEU2MUM2MTAwM0NDQkFFIC8qIFdLVXNlckNvbnRlbnRDb250cm9sbGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUZBM0FD
NzE4RTYxQzYxMDAzQ0NCQUUgLyogV0tVc2VyQ29udGVudENvbnRyb2xsZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07Ci0JCTFBRkE0QjhDMUE2NUExRDAw
MDZDNEFCNCAvKiBXZWJQcm9jZXNzTGlmZXRpbWVUcmFja2VyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUZBNEI4QTFBNjVBMUQwMDA2QzRBQjQgLyog
V2ViUHJvY2Vzc0xpZmV0aW1lVHJhY2tlci5oICovOyB9OwotCQkxQUZBNEI5MDFBNjVBOUUyMDA2
QzRBQjQgLyogV2ViUHJvY2Vzc0xpZmV0aW1lT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBRkE0QjhFMUE2NUE5RTIwMDZDNEFCNCAvKiBX
ZWJQcm9jZXNzTGlmZXRpbWVPYnNlcnZlci5oICovOyB9OwogCQkxQUZCNEM3MjFBREYxNTVEMDBC
MzMzMzkgLyogX1dLV2Vic2l0ZURhdGFTdG9yZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUFGQjRDNzAxQURGMTU1RDAwQjMzMzM5IC8qIF9XS1dlYnNp
dGVEYXRhU3RvcmUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkxQUZERDMxNTE4OTFCNTQwMDAxNTM5NzAgLyogQVBJUG9saWN5Q2xpZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUZERDMxNDE4OTFC
NTQwMDAxNTM5NzAgLyogQVBJUG9saWN5Q2xpZW50LmggKi87IH07CiAJCTFBRkREMzE3MTg5MUM5
NDcwMDE1Mzk3MCAvKiBXS1ByZWZlcmVuY2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQUZERDMxNjE4OTFDOTQ3MDAxNTM5NzAgLyogV0tQcmVmZXJl
bmNlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKQEAg
LTI0MjIsMTAgKzI0MjAsNiBAQAogCQkxQUY0Q0VFRTE4QkM0ODE4MDBCQzJEMzQgLyogVmlzaXRl
ZExpbmtUYWJsZUNvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMUFGQTNBQzYxOEU2MUM2MTAwM0NDQkFFIC8qIFdLVXNlckNvbnRlbnRDb250cm9sbGVyLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tVc2VyQ29udGVudENv
bnRyb2xsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBRkEzQUM3MThFNjFD
NjEwMDNDQ0JBRSAvKiBXS1VzZXJDb250ZW50Q29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXS1VzZXJDb250ZW50Q29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQkxQUZBNEI4OTFBNjVBMUQwMDA2QzRBQjQgLyogV2ViUHJvY2Vzc0xp
ZmV0aW1lVHJhY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
ZWJQcm9jZXNzTGlmZXRpbWVUcmFja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJMUFGQTRCOEExQTY1QTFEMDAwNkM0QUI0IC8qIFdlYlByb2Nlc3NMaWZldGltZVRyYWNrZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViUHJvY2Vzc0xpZmV0aW1lVHJh
Y2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxQUZBNEI4RDFBNjVBOUUyMDA2
QzRBQjQgLyogV2ViUHJvY2Vzc0xpZmV0aW1lT2JzZXJ2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV2ViUHJvY2Vzc0xpZmV0aW1lT2JzZXJ2ZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxQUZBNEI4RTFBNjVBOUUyMDA2QzRBQjQgLyogV2Vi
UHJvY2Vzc0xpZmV0aW1lT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViUHJvY2Vzc0xpZmV0aW1lT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUFGQjRDNkYxQURGMTU1RDAwQjMzMzM5IC8qIF9XS1dlYnNpdGVEYXRhU3RvcmUubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBfV0tXZWJzaXRlRGF0YVN0
b3JlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQUZCNEM3MDFBREYxNTVEMDBC
MzMzMzkgLyogX1dLV2Vic2l0ZURhdGFTdG9yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBfV0tXZWJzaXRlRGF0YVN0b3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTFBRkREMzE0MTg5MUI1NDAwMDE1Mzk3MCAvKiBBUElQb2xpY3lDbGllbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJUG9saWN5Q2xpZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC03NzgxLDEwICs3Nzc1LDYgQEAKIAkJCQlCQ0Q1OTdGRDExMkI1
N0JFMDBFQzhDMjMgLyogV2ViUHJlZmVyZW5jZXMuaCAqLywKIAkJCQk4MzM5N0M2NjIyMTI0QkQx
MDBCNjIzODggLyogV2ViUHJvY2Vzc0NhY2hlLmNwcCAqLywKIAkJCQk4MzM5N0M2NzIyMTI0QkQx
MDBCNjIzODggLyogV2ViUHJvY2Vzc0NhY2hlLmggKi8sCi0JCQkJMUFGQTRCOEQxQTY1QTlFMjAw
NkM0QUI0IC8qIFdlYlByb2Nlc3NMaWZldGltZU9ic2VydmVyLmNwcCAqLywKLQkJCQkxQUZBNEI4
RTFBNjVBOUUyMDA2QzRBQjQgLyogV2ViUHJvY2Vzc0xpZmV0aW1lT2JzZXJ2ZXIuaCAqLywKLQkJ
CQkxQUZBNEI4OTFBNjVBMUQwMDA2QzRBQjQgLyogV2ViUHJvY2Vzc0xpZmV0aW1lVHJhY2tlci5j
cHAgKi8sCi0JCQkJMUFGQTRCOEExQTY1QTFEMDAwNkM0QUI0IC8qIFdlYlByb2Nlc3NMaWZldGlt
ZVRyYWNrZXIuaCAqLywKIAkJCQk3Q0U0RDIxNzFBNDkxNEEzMDBDN0YxNTIgLyogV2ViUHJvY2Vz
c1Bvb2wuY3BwICovLAogCQkJCTdDRTREMjE4MUE0OTE0QTMwMEM3RjE1MiAvKiBXZWJQcm9jZXNz
UG9vbC5oICovLAogCQkJCTdDRTREMjE5MUE0OTE0QTMwMEM3RjE1MiAvKiBXZWJQcm9jZXNzUG9v
bC5tZXNzYWdlcy5pbiAqLywKQEAgLTk4NzEsOCArOTg2MSw2IEBACiAJCQkJMUEwNDNGNkExMjUx
NEQ4QjAwRkZCRkI1IC8qIFdlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDMzA2ODI0MTI1QTZCOTQwMEU3MTI3OCAvKiBXZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjdFNDNFODIyNDNGRjdEMDBCMTM5MjQg
LyogV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovLAotCQkJCTFB
RkE0QjkwMUE2NUE5RTIwMDZDNEFCNCAvKiBXZWJQcm9jZXNzTGlmZXRpbWVPYnNlcnZlci5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMUFGQTRCOEMxQTY1QTFEMDAwNkM0QUI0IC8qIFdlYlByb2Nlc3NM
aWZldGltZVRyYWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMzA2NkJGMTI1QTQ0MjEwMEU3
MTI3OCAvKiBXZWJQcm9jZXNzTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDRTREMjFC
MUE0OTE0QTMwMEM3RjE1MiAvKiBXZWJQcm9jZXNzUG9vbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
N0NFNEQyMjgxQTQ5MTZDMjAwQzdGMTUyIC8qIFdlYlByb2Nlc3NQb29sTWVzc2FnZXMuaCBpbiBI
ZWFkZXJzICovLAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>