<?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>181935</bug_id>
          
          <creation_ts>2018-01-22 09:08:20 -0800</creation_ts>
          <short_desc>Add release logging to help debug issues related to service workers</short_desc>
          <delta_ts>2018-01-22 13:13:46 -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>Service Workers</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1391659</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-01-22 09:08:20 -0800</bug_when>
    <thetext>Add release logging to help debug issues related to service workers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1391660</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-01-22 09:08:50 -0800</bug_when>
    <thetext>&lt;rdar://problem/36735900&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1391716</commentid>
    <comment_count>2</comment_count>
      <attachid>331943</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-01-22 10:42:57 -0800</bug_when>
    <thetext>Created attachment 331943
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1391730</commentid>
    <comment_count>3</comment_count>
      <attachid>331943</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2018-01-22 11:54:21 -0800</bug_when>
    <thetext>Comment on attachment 331943
Patch

Make it build, of course</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1391731</commentid>
    <comment_count>4</comment_count>
      <attachid>331946</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-01-22 11:59:23 -0800</bug_when>
    <thetext>Created attachment 331946
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1391762</commentid>
    <comment_count>5</comment_count>
      <attachid>331946</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-01-22 13:08:52 -0800</bug_when>
    <thetext>Comment on attachment 331946
Patch

Clearing flags on attachment: 331946

Committed r227350: &lt;https://trac.webkit.org/changeset/227350&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1391763</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-01-22 13:08:54 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>331943</attachid>
            <date>2018-01-22 10:42:57 -0800</date>
            <delta_ts>2018-01-22 11:59:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181935-20180122104257.patch</filename>
            <type>text/plain</type>
            <size>29508</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI3Mjk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWY5ODFkZGNjNjU2ZjNk
ZGMzNzdhZWM3OWY0NmU4NTRmNTkzZjZjNi4uNWUzZTY5ZmJhMTUwZWY4MmI0MDgzNWZkYzIyYTky
NjdmMGE5Mjg4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE4LTAxLTIyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHJlbGVhc2UgbG9nZ2lu
ZyB0byBoZWxwIGRlYnVnIGlzc3VlcyByZWxhdGVkIHRvIHNlcnZpY2Ugd29ya2VycworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxOTM1CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS8zNjczNTkwMD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXI6OlNlcnZpY2VXb3JrZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6U2VydmljZVdvcmtlcjo6c2NoZWR1bGVUYXNrVG9VcGRhdGVTdGF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyOjpwb3N0TWVzc2FnZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VyOjppc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQgY29uc3QpOgor
ICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmg6CisgICAgICAgICogd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2VydmljZVdvcmtlckNvbnRhaW5lcjo6YWRkUmVnaXN0cmF0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJDb250YWluZXI6OnJlbW92ZVJlZ2lzdHJhdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjp1cGRhdGVSZWdpc3RyYXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRhaW5lcjo6am9iRmFpbGVkV2l0
aEV4Y2VwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpq
b2JSZXNvbHZlZFdpdGhSZWdpc3RyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdv
cmtlckNvbnRhaW5lcjo6am9iUmVzb2x2ZWRXaXRoVW5yZWdpc3RyYXRpb25SZXN1bHQpOgorICAg
ICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRhaW5lcjo6c3RhcnRTY3JpcHRGZXRjaEZv
ckpvYik6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpqb2JGaW5p
c2hlZExvYWRpbmdTY3JpcHQpOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRh
aW5lcjo6am9iRmFpbGVkTG9hZGluZ1NjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNl
V29ya2VyQ29udGFpbmVyOjppc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQgY29uc3QpOgorICAgICAg
ICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmg6CisgICAgICAgICog
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbjo6U2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uOjp1cGRh
dGVTdGF0ZUZyb21TZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbjo6c2NoZWR1bGVUYXNrVG9GaXJlVXBkYXRlRm91bmRFdmVudCk6CisgICAgICAgICog
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
V1NlcnZlcjo6c2NyaXB0Q29udGV4dEZhaWxlZFRvU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6
U1dTZXJ2ZXI6OmRpZEZpbmlzaEluc3RhbGwpOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6
OmRpZEZpbmlzaEFjdGl2YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OnRlcm1p
bmF0ZVdvcmtlckludGVybmFsKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NX
U2VydmVySm9iUXVldWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJKb2JRdWV1ZTo6
ZGlkUmVzb2x2ZVJlZ2lzdHJhdGlvblByb21pc2UpOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2
ZXJKb2JRdWV1ZTo6cnVuUmVnaXN0ZXJKb2IpOgorCiAyMDE4LTAxLTIyICBKYXZpZXIgRmVybmFu
ZGV6ICA8amZlcm5hbmRlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtjc3MtYWxpZ25dICdvdmVy
Zmxvdycga2V5d29yZCBtdXN0IHByZWNlZGUgdGhlIHNlbGYtcG9zaXRpb24gYW5kIGNvbnRlbnQt
cG9zaXRpb24gdmFsdWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYjliYjdjZDViMTQ5YzE1MDZhZjNhNTI5N2Q4ZGE4
NzUxNjhhOTgxMC4uMmY3ZDJlZWYzZWVhNDRlODFjYTU4MzdjNThlOGRiYTgyMTMxNGVjOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOC0wMS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIEFkZCByZWxlYXNlIGxvZ2dpbmcgdG8gaGVscCBkZWJ1ZyBp
c3N1ZXMgcmVsYXRlZCB0byBzZXJ2aWNlIHdvcmtlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MTkzNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
MzY3MzU5MDA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBTdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6c3RhcnRGZXRjaCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6ZGlkRmluaXNoRmV0Y2gp
OgorICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OmRpZEZhaWxGZXRjaCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6ZGlkTm90SGFuZGxlRmV0
Y2gpOgorCiAyMDE4LTAxLTIyICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeCBhZnRlciByMjI3MjkyLiBGaXhpbmcgYSBi
YWQgY29weS1wYXN0ZSB0aGF0IGJyb2tlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlci5jcHAKaW5kZXggZTlmOGNiMDQyMjAwZWU0OTRlYTA2YTc0M2Qx
ZTA2MjkyOGQ3MmE2Ni4uMGI4Y2U5MzE1YmMwODhjZjBjZDhmNjNjMDYwNzg0ZGI1NjYyZjA3OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmNw
cApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJF
dmVudE5hbWVzLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lc3NhZ2VQb3J0
LmgiCiAjaW5jbHVkZSAiU1dDbGllbnRDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oIgpAQCAtNDAsNiArNDEsOSBAQAogI2luY2x1ZGUgPHJ1bnRpbWUvSlND
SlNWYWx1ZUlubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAorI2Rl
ZmluZSBXT1JLRVJfUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChmbXQsIC4uLikgUkVMRUFTRV9MT0df
SUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIFNlcnZpY2VXb3JrZXIsICIlcCAtIFNlcnZp
Y2VXb3JrZXI6OiIgZm10LCB0aGlzLCAjI19fVkFfQVJHU19fKQorI2RlZmluZSBXT1JLRVJfUkVM
RUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChmbXQsIC4uLikgUkVMRUFTRV9MT0dfRVJST1JfSUYo
aXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIFNlcnZpY2VXb3JrZXIsICIlcCAtIFNlcnZpY2VX
b3JrZXI6OiIgZm10LCB0aGlzLCAjI19fVkFfQVJHU19fKQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIFJlZjxTZXJ2aWNlV29ya2VyPiBTZXJ2aWNlV29ya2VyOjpnZXRPckNyZWF0ZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBTZXJ2aWNlV29ya2VyRGF0YSYmIGRhdGEpCkBAIC01
OSw2ICs2Myw4IEBAIFNlcnZpY2VXb3JrZXI6OlNlcnZpY2VXb3JrZXIoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCwgU2VydmljZVdvcmtlckRhdGEmCiAKICAgICByZWxheEFkb3B0aW9u
UmVxdWlyZW1lbnQoKTsKICAgICB1cGRhdGVQZW5kaW5nQWN0aXZpdHlGb3JFdmVudERpc3BhdGNo
KCk7CisKKyAgICBXT1JLRVJfUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiU2VydmljZVdvcmtlcjog
SUQ6ICVsbHUsIHN0YXRlOiAldSIsIGlkZW50aWZpZXIoKS50b1VJbnQ2NCgpLCBtX2RhdGEuc3Rh
dGUpOwogfQogCiBTZXJ2aWNlV29ya2VyOjp+U2VydmljZVdvcmtlcigpCkBAIC03Niw2ICs4Miw3
IEBAIHZvaWQgU2VydmljZVdvcmtlcjo6c2NoZWR1bGVUYXNrVG9VcGRhdGVTdGF0ZShTdGF0ZSBz
dGF0ZSkKICAgICBjb250ZXh0LT5wb3N0VGFzayhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpLCBzdGF0ZV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIHsKICAgICAgICAgQVNT
RVJUKHRoaXMtPnN0YXRlKCkgIT0gc3RhdGUpOwogCisgICAgICAgIFdPUktFUl9SRUxFQVNFX0xP
R19JRl9BTExPV0VEKCJzY2hlZHVsZVRhc2tUb1VwZGF0ZVN0YXRlOiBVcGRhdGluZyBzZXJ2aWNl
IHdvcmtlciAlbGx1IHN0YXRlIGZyb20gJXUgdG8gJXUuIFJlZ2lzdHJhdGlvbiBJRDogJWxsdSIs
IGlkZW50aWZpZXIoKS50b1VJbnQ2NCgpLCBtX2RhdGEuc3RhdGUsIHN0YXRlLCByZWdpc3RyYXRp
b25JZGVudGlmaWVyKCkudG9VSW50NjQoKSk7CiAgICAgICAgIG1fZGF0YS5zdGF0ZSA9IHN0YXRl
OwogICAgICAgICBpZiAoc3RhdGUgIT0gU3RhdGU6Okluc3RhbGxpbmcgJiYgIW1faXNTdG9wcGVk
KSB7CiAgICAgICAgICAgICBBU1NFUlQobV9wZW5kaW5nQWN0aXZpdHlGb3JFdmVudERpc3BhdGNo
KTsKQEAgLTExMSw4ICsxMTgsMTAgQEAgRXhjZXB0aW9uT3I8dm9pZD4gU2VydmljZVdvcmtlcjo6
cG9zdE1lc3NhZ2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSlMKIAogICAgIC8v
IEZJWE1FOiBTdXBwb3J0IHNlbmRpbmcgdGhlIGNoYW5uZWxzLgogICAgIGF1dG8gY2hhbm5lbHMg
PSBjaGFubmVsc09yRXhjZXB0aW9uLnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwotICAgIGlmICghY2hh
bm5lbHMuaXNFbXB0eSgpKQorICAgIGlmICghY2hhbm5lbHMuaXNFbXB0eSgpKSB7CisgICAgICAg
IFdPUktFUl9SRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKCJwb3N0TWVzc2FnZTogUGFzc2lu
ZyBNZXNzYWdlUG9ydCBvYmplY3RzIHRvIHBvc3RNZXNzYWdlIGlzIG5vdCB5ZXQgc3VwcG9ydGVk
Iik7CiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciwgQVNDSUlM
aXRlcmFsKCJQYXNzaW5nIE1lc3NhZ2VQb3J0IG9iamVjdHMgdG8gcG9zdE1lc3NhZ2UgaXMgbm90
IHlldCBzdXBwb3J0ZWQiKSB9OworICAgIH0KIAogICAgIFNlcnZpY2VXb3JrZXJPckNsaWVudElk
ZW50aWZpZXIgc291cmNlSWRlbnRpZmllcjsKICAgICBpZiAoaXM8U2VydmljZVdvcmtlckdsb2Jh
bFNjb3BlPihjb250ZXh0KSkKQEAgLTE3MCw2ICsxNzksMTkgQEAgdm9pZCBTZXJ2aWNlV29ya2Vy
Ojp1cGRhdGVQZW5kaW5nQWN0aXZpdHlGb3JFdmVudERpc3BhdGNoKCkKICAgICBtX3BlbmRpbmdB
Y3Rpdml0eUZvckV2ZW50RGlzcGF0Y2ggPSBtYWtlUGVuZGluZ0FjdGl2aXR5KCp0aGlzKTsKIH0K
IAorYm9vbCBTZXJ2aWNlV29ya2VyOjppc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSBjb25zdAor
eworICAgIGF1dG8qIGNvbnRleHQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CisgICAgaWYg
KCFjb250ZXh0KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBhdXRvKiBjb250YWluZXIg
PSBjb250ZXh0LT5zZXJ2aWNlV29ya2VyQ29udGFpbmVyKCk7CisgICAgaWYgKCFjb250YWluZXIp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiBjb250YWluZXItPmlzQWx3YXlz
T25Mb2dnaW5nQWxsb3dlZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRp
ZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXIuaAppbmRleCBlNzcxYjFhMDEwYjFkZDM3ODdkMWYzYTMyNWI0
OTEwNDQ0NTAwNTFmLi4xNTdkZTg1ZThkMTYzMGY2MDY5MGEwYzY1NzBmYTkzOTgxMjk2Mjk3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmgKQEAg
LTc4LDYgKzc4LDggQEAgcHJpdmF0ZToKICAgICBib29sIGNhblN1c3BlbmRGb3JEb2N1bWVudFN1
c3BlbnNpb24oKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHN0b3AoKSBmaW5hbDsKIAorICAgIGJv
b2wgaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCkgY29uc3Q7CisKICAgICBTZXJ2aWNlV29ya2Vy
RGF0YSBtX2RhdGE7CiAgICAgYm9vbCBtX2lzU3RvcHBlZCB7IGZhbHNlIH07CiAgICAgUmVmUHRy
PFBlbmRpbmdBY3Rpdml0eTxTZXJ2aWNlV29ya2VyPj4gbV9wZW5kaW5nQWN0aXZpdHlGb3JFdmVu
dERpc3BhdGNoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJDb250YWluZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwCmluZGV4IDE1N2JmZDAwYzk0OTMxMzAwYzY2ZDA1
OGY2MjMwYTJiZDQ3MTA1N2YuLmU2MDMxNDk3OWFjNzViMjRjYzBmYmZjOTgxMTk4ZTc0ZjhkYWQx
N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VyQ29udGFpbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlckNvbnRhaW5lci5jcHAKQEAgLTUyLDYgKzUyLDkgQEAKICNpbmNsdWRlIDx3dGYv
UnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogCisjZGVmaW5lIENPTlRBSU5FUl9S
RUxFQVNFX0xPR19JRl9BTExPV0VEKGZtdCwgLi4uKSBSRUxFQVNFX0xPR19JRihpc0Fsd2F5c09u
TG9nZ2luZ0FsbG93ZWQoKSwgU2VydmljZVdvcmtlciwgIiVwIC0gU2VydmljZVdvcmtlckNvbnRh
aW5lcjo6IiBmbXQsIHRoaXMsICMjX19WQV9BUkdTX18pCisjZGVmaW5lIENPTlRBSU5FUl9SRUxF
QVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKGZtdCwgLi4uKSBSRUxFQVNFX0xPR19FUlJPUl9JRihp
c0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgU2VydmljZVdvcmtlciwgIiVwIC0gU2VydmljZVdv
cmtlckNvbnRhaW5lcjo6IiBmbXQsIHRoaXMsICMjX19WQV9BUkdTX18pCisKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogU2VydmljZVdvcmtlckNvbnRhaW5lcjo6U2VydmljZVdvcmtlckNvbnRhaW5l
cihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBOYXZpZ2F0b3JCYXNlJiBuYXZpZ2F0
b3IpCkBAIC0xMjcsMTcgKzEzMCwyMCBAQCB2b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OmFk
ZFJlZ2lzdHJhdGlvbihjb25zdCBTdHJpbmcmIHJlbGF0aXZlU2NyaXB0VVJMLCBjbwogCiAgICAg
am9iRGF0YS5zY3JpcHRVUkwgPSBjb250ZXh0LT5jb21wbGV0ZVVSTChyZWxhdGl2ZVNjcmlwdFVS
TCk7CiAgICAgaWYgKCFqb2JEYXRhLnNjcmlwdFVSTC5pc1ZhbGlkKCkpIHsKKyAgICAgICAgQ09O
VEFJTkVSX1JFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoImFkZFJlZ2lzdHJhdGlvbjogSW52
YWxpZCBzY3JpcHRVUkwiKTsKICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IFR5
cGVFcnJvciwgQVNDSUlMaXRlcmFsKCJzZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCkgbXVzdCBiZSBj
YWxsZWQgd2l0aCBhIHZhbGlkIHJlbGF0aXZlIHNjcmlwdCBVUkwiKSB9KTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAogICAgIGlmICghU2NoZW1lUmVnaXN0cnk6OmNhblNlcnZpY2VXb3JrZXJz
SGFuZGxlVVJMU2NoZW1lKGpvYkRhdGEuc2NyaXB0VVJMLnByb3RvY29sKCkudG9TdHJpbmdXaXRo
b3V0Q29weWluZygpKSkgeworICAgICAgICBDT05UQUlORVJfUkVMRUFTRV9MT0dfRVJST1JfSUZf
QUxMT1dFRCgiYWRkUmVnaXN0cmF0aW9uOiBJbnZhbGlkIHNjcmlwdFVSTCBzY2hlbWUgaXMgbm90
IEhUVFAgb3IgSFRUUFMiKTsKICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IFR5
cGVFcnJvciwgQVNDSUlMaXRlcmFsKCJzZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCkgbXVzdCBiZSBj
YWxsZWQgd2l0aCBhIHNjcmlwdCBVUkwgd2hvc2UgcHJvdG9jb2wgaXMgZWl0aGVyIEhUVFAgb3Ig
SFRUUFMiKSB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFN0cmluZyBwYXRoID0g
am9iRGF0YS5zY3JpcHRVUkwucGF0aCgpOwogICAgIGlmIChwYXRoLmNvbnRhaW5zSWdub3JpbmdB
U0NJSUNhc2UoIiUyZiIpIHx8IHBhdGguY29udGFpbnNJZ25vcmluZ0FTQ0lJQ2FzZSgiJTVjIikp
IHsKKyAgICAgICAgQ09OVEFJTkVSX1JFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoImFkZFJl
Z2lzdHJhdGlvbjogc2NyaXB0VVJMIGNvbnRhaW5zIGludmFsaWQgY2hhcmFjdGVyIik7CiAgICAg
ICAgIHByb21pc2UtPnJlamVjdChFeGNlcHRpb24geyBUeXBlRXJyb3IsIEFTQ0lJTGl0ZXJhbCgi
c2VydmljZVdvcmtlci5yZWdpc3RlcigpIG11c3QgYmUgY2FsbGVkIHdpdGggYSBzY3JpcHQgVVJM
IHdob3NlIHBhdGggZG9lcyBub3QgY29udGFpbiAnJTJmJyBvciAnJTVjJyIpIH0pOwogICAgICAg
ICByZXR1cm47CiAgICAgfQpAQCAtMTQ4LDE2ICsxNTQsMjAgQEAgdm9pZCBTZXJ2aWNlV29ya2Vy
Q29udGFpbmVyOjphZGRSZWdpc3RyYXRpb24oY29uc3QgU3RyaW5nJiByZWxhdGl2ZVNjcmlwdFVS
TCwgY28KICAgICAgICAgam9iRGF0YS5zY29wZVVSTCA9IFVSTChqb2JEYXRhLnNjcmlwdFVSTCwg
Ii4vIik7CiAKICAgICBpZiAoIWpvYkRhdGEuc2NvcGVVUkwuaXNOdWxsKCkgJiYgIVNjaGVtZVJl
Z2lzdHJ5OjpjYW5TZXJ2aWNlV29ya2Vyc0hhbmRsZVVSTFNjaGVtZShqb2JEYXRhLnNjb3BlVVJM
LnByb3RvY29sKCkudG9TdHJpbmdXaXRob3V0Q29weWluZygpKSkgeworICAgICAgICBDT05UQUlO
RVJfUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCgiYWRkUmVnaXN0cmF0aW9uOiBzY29wZVVS
TCBzY2hlbWUgaXMgbm90IEhUVFAgb3IgSFRUUFMiKTsKICAgICAgICAgcHJvbWlzZS0+cmVqZWN0
KEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgQVNDSUlMaXRlcmFsKCJTY29wZSBVUkwgcHJvdmlkZWQg
dG8gc2VydmljZVdvcmtlci5yZWdpc3RlcigpIG11c3QgYmUgZWl0aGVyIEhUVFAgb3IgSFRUUFMi
KSB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIHBhdGggPSBqb2JEYXRhLnNjb3Bl
VVJMLnBhdGgoKTsKICAgICBpZiAocGF0aC5jb250YWluc0lnbm9yaW5nQVNDSUlDYXNlKCIlMmYi
KSB8fCBwYXRoLmNvbnRhaW5zSWdub3JpbmdBU0NJSUNhc2UoIiU1YyIpKSB7CisgICAgICAgIENP
TlRBSU5FUl9SRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKCJhZGRSZWdpc3RyYXRpb246IHNj
b3BlVVJMIGNvbnRhaW5zIGludmFsaWQgY2hhcmFjdGVyIik7CiAgICAgICAgIHByb21pc2UtPnJl
amVjdChFeGNlcHRpb24geyBUeXBlRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiU2NvcGUgVVJMIHByb3Zp
ZGVkIHRvIHNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoKSBjYW5ub3QgaGF2ZSBhIHBhdGggdGhhdCBj
b250YWlucyAnJTJmJyBvciAnJTVjJyIpIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCisg
ICAgQ09OVEFJTkVSX1JFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImFkZFJlZ2lzdHJhdGlvbjogUmVn
aXN0ZXJpbmcgc2VydmljZSB3b3JrZXIuIEpvYiBJRDogJWxsdSIsIGpvYkRhdGEuaWRlbnRpZmll
cigpLmpvYklkZW50aWZpZXIudG9VSW50NjQoKSk7CisKICAgICBqb2JEYXRhLmNsaWVudENyZWF0
aW9uVVJMID0gY29udGV4dC0+dXJsKCk7CiAgICAgam9iRGF0YS50b3BPcmlnaW4gPSBTZWN1cml0
eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbihjb250ZXh0LT50b3BPcmlnaW4oKSk7CiAg
ICAgam9iRGF0YS50eXBlID0gU2VydmljZVdvcmtlckpvYlR5cGU6OlJlZ2lzdGVyOwpAQCAtMTg3
LDYgKzE5Nyw4IEBAIHZvaWQgU2VydmljZVdvcmtlckNvbnRhaW5lcjo6cmVtb3ZlUmVnaXN0cmF0
aW9uKGNvbnN0IFVSTCYgc2NvcGVVUkwsIFJlZjxEZWZlcnJlCiAgICAgam9iRGF0YS50eXBlID0g
U2VydmljZVdvcmtlckpvYlR5cGU6OlVucmVnaXN0ZXI7CiAgICAgam9iRGF0YS5zY29wZVVSTCA9
IHNjb3BlVVJMOwogCisgICAgQ09OVEFJTkVSX1JFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInJlbW92
ZVJlZ2lzdHJhdGlvbjogVW5yZWdpc3RlcmluZyBzZXJ2aWNlIHdvcmtlci4gSm9iIElEOiAlbGx1
Iiwgam9iRGF0YS5pZGVudGlmaWVyKCkuam9iSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKKwogICAg
IHNjaGVkdWxlSm9iKFNlcnZpY2VXb3JrZXJKb2I6OmNyZWF0ZSgqdGhpcywgV1RGTW92ZShwcm9t
aXNlKSwgV1RGTW92ZShqb2JEYXRhKSkpOwogfQogCkBAIC0yMTEsNiArMjIzLDggQEAgdm9pZCBT
ZXJ2aWNlV29ya2VyQ29udGFpbmVyOjp1cGRhdGVSZWdpc3RyYXRpb24oY29uc3QgVVJMJiBzY29w
ZVVSTCwgY29uc3QgVVJMJgogICAgIGpvYkRhdGEuc2NvcGVVUkwgPSBzY29wZVVSTDsKICAgICBq
b2JEYXRhLnNjcmlwdFVSTCA9IHNjcmlwdFVSTDsKIAorICAgIENPTlRBSU5FUl9SRUxFQVNFX0xP
R19JRl9BTExPV0VEKCJyZW1vdmVSZWdpc3RyYXRpb246IFVwZGF0aW5nIHNlcnZpY2Ugd29ya2Vy
LiBKb2IgSUQ6ICVsbHUiLCBqb2JEYXRhLmlkZW50aWZpZXIoKS5qb2JJZGVudGlmaWVyLnRvVUlu
dDY0KCkpOworCiAgICAgc2NoZWR1bGVKb2IoU2VydmljZVdvcmtlckpvYjo6Y3JlYXRlKCp0aGlz
LCBXVEZNb3ZlKHByb21pc2UpLCBXVEZNb3ZlKGpvYkRhdGEpKSk7CiB9CiAKQEAgLTM2MCw2ICsz
NzQsOCBAQCB2b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OmpvYkZhaWxlZFdpdGhFeGNlcHRp
b24oU2VydmljZVdvcmtlckpvYiYgam9iLCBjb25zdAogICAgICAgICBqb2JEaWRGaW5pc2goam9i
KTsKICAgICB9KTsKIAorICAgIENPTlRBSU5FUl9SRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VE
KCJqb2JGYWlsZWRXaXRoRXhjZXB0aW9uOiBKb2IgJWxsdSBmYWlsZWQgd2l0aCBlcnJvciAlcyIs
IGpvYi5pZGVudGlmaWVyKCkudG9VSW50NjQoKSwgZXhjZXB0aW9uLm1lc3NhZ2UoKS51dGY4KCku
ZGF0YSgpKTsKKwogICAgIGlmICgham9iLnByb21pc2UoKSkKICAgICAgICAgcmV0dXJuOwogCkBA
IC0zOTEsNiArNDA3LDEzIEBAIHZvaWQgU2VydmljZVdvcmtlckNvbnRhaW5lcjo6am9iUmVzb2x2
ZWRXaXRoUmVnaXN0cmF0aW9uKFNlcnZpY2VXb3JrZXJKb2ImIGpvYiwKICAgICAgICAgam9iRGlk
RmluaXNoKGpvYik7CiAgICAgfSk7CiAKKyAgICBpZiAoam9iLmRhdGEoKS50eXBlID09IFNlcnZp
Y2VXb3JrZXJKb2JUeXBlOjpSZWdpc3RlcikKKyAgICAgICAgQ09OVEFJTkVSX1JFTEVBU0VfTE9H
X0lGX0FMTE9XRUQoImpvYlJlc29sdmVkV2l0aFJlZ2lzdHJhdGlvbjogUmVnaXN0cmF0aW9uIGpv
YiAlbGx1IHN1Y2NlZWRlZCIsIGpvYi5pZGVudGlmaWVyKCkudG9VSW50NjQoKSk7CisgICAgZWxz
ZSB7CisgICAgICAgIEFTU0VSVChqb2IuZGF0YSgpLnR5cGUgPT0gU2VydmljZVdvcmtlckpvYlR5
cGU6OlVwZGF0ZSk7CisgICAgICAgIENPTlRBSU5FUl9SRUxFQVNFX0xPR19JRl9BTExPV0VEKCJq
b2JSZXNvbHZlZFdpdGhSZWdpc3RyYXRpb246IFVwZGF0ZSBqb2IgJWxsdSBzdWNjZWVkZWQiLCBq
b2IuaWRlbnRpZmllcigpLnRvVUludDY0KCkpOworICAgIH0KKwogICAgIFdURjo6RnVuY3Rpb248
dm9pZCgpPiBub3RpZnlXaGVuUmVzb2x2ZWRJZk5lZWRlZCA9IFtdIHsgfTsKICAgICBpZiAoc2hv
dWxkTm90aWZ5V2hlblJlc29sdmVkID09IFNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZDo6WWVzKSB7
CiAgICAgICAgIG5vdGlmeVdoZW5SZXNvbHZlZElmTmVlZGVkID0gW2Nvbm5lY3Rpb24gPSBtX3N3
Q29ubmVjdGlvbiwgcmVnaXN0cmF0aW9uS2V5ID0gZGF0YS5rZXkuaXNvbGF0ZWRDb3B5KCldKCkg
bXV0YWJsZSB7CkBAIC00MTgsNyArNDQxLDcgQEAgdm9pZCBTZXJ2aWNlV29ya2VyQ29udGFpbmVy
Ojpqb2JSZXNvbHZlZFdpdGhSZWdpc3RyYXRpb24oU2VydmljZVdvcmtlckpvYiYgam9iLAogCiAg
ICAgICAgIGF1dG8gcmVnaXN0cmF0aW9uID0gU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbjo6Z2V0
T3JDcmVhdGUoY29udGV4dCwgKnRoaXMsIFdURk1vdmUoZGF0YSkpOwogCi0gICAgICAgIExPRyhT
ZXJ2aWNlV29ya2VyLCAiQ29udGFpbmVyICVwIHJlc29sdmVkIGpvYiB3aXRoIHJlZ2lzdHJhdGlv
biAlcCIsIHRoaXMsIHJlZ2lzdHJhdGlvbi5wdHIoKSk7CisgICAgICAgIENPTlRBSU5FUl9SRUxF
QVNFX0xPR19JRl9BTExPV0VEKCJqb2JSZXNvbHZlZFdpdGhSZWdpc3RyYXRpb246IFJlc29sdmlu
ZyBwcm9taXNlIGZvciBqb2IgJWxsdS4gUmVnaXN0cmF0aW9uIElEOiAlbGx1Iiwgam9iLT5pZGVu
dGlmaWVyKCkudG9VSW50NjQoKSwgcmVnaXN0cmF0aW9uLT5pZGVudGlmaWVyKCkudG9VSW50NjQo
KSk7CiAKICAgICAgICAgam9iLT5wcm9taXNlKCktPnJlc29sdmU8SURMSW50ZXJmYWNlPFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb24+PihXVEZNb3ZlKHJlZ2lzdHJhdGlvbikpOwogCkBAIC00Mzgs
NiArNDYxLDggQEAgdm9pZCBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpqb2JSZXNvbHZlZFdpdGhV
bnJlZ2lzdHJhdGlvblJlc3VsdChTZXJ2aWNlV29ya2VySm8KICAgICAgICAgam9iRGlkRmluaXNo
KGpvYik7CiAgICAgfSk7CiAKKyAgICBDT05UQUlORVJfUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgi
am9iUmVzb2x2ZWRXaXRoVW5yZWdpc3RyYXRpb25SZXN1bHQ6IFVucmVnaXN0ZXIgam9iICVsbHUg
ZmluaXNoZWQuIFN1Y2Nlc3M/ICVkIiwgam9iLmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpLCB1bnJl
Z2lzdHJhdGlvblJlc3VsdCk7CisKICAgICBhdXRvKiBjb250ZXh0ID0gc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpOwogICAgIGlmICghY29udGV4dCkgewogICAgICAgICBMT0dfRVJST1IoIlNlcnZp
Y2VXb3JrZXJDb250YWluZXI6OmpvYlJlc29sdmVkV2l0aFVucmVnaXN0cmF0aW9uUmVzdWx0IGNh
bGxlZCBidXQgdGhlIGNvbnRhaW5lcnMgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCBpcyBnb25lIik7
CkBAIC00NTUsNyArNDgwLDcgQEAgdm9pZCBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpzdGFydFNj
cmlwdEZldGNoRm9ySm9iKFNlcnZpY2VXb3JrZXJKb2ImIGpvYiwgRmV0Y2gKICAgICBBU1NFUlQo
bV9jcmVhdGlvblRocmVhZC5wdHIoKSA9PSAmVGhyZWFkOjpjdXJyZW50KCkpOwogI2VuZGlmCiAK
LSAgICBMT0coU2VydmljZVdvcmtlciwgIlNldmljZVdvcmtlckNvbnRhaW5lciAlcCBzdGFydGlu
ZyBzY3JpcHQgZmV0Y2ggZm9yIGpvYiAlcyIsIHRoaXMsIGpvYi5pZGVudGlmaWVyKCkubG9nZ2lu
Z1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIENPTlRBSU5FUl9SRUxFQVNFX0xPR19JRl9B
TExPV0VEKCJzdGFydFNjcmlwdEZldGNoRm9ySm9iOiBTdGFydGluZyBzY3JpcHQgZmV0Y2ggZm9y
IGpvYiAlbGx1Iiwgam9iLmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpKTsKIAogICAgIGF1dG8qIGNv
bnRleHQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAgICAgaWYgKCFjb250ZXh0KSB7CkBA
IC00NzYsNyArNTAxLDcgQEAgdm9pZCBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpqb2JGaW5pc2hl
ZExvYWRpbmdTY3JpcHQoU2VydmljZVdvcmtlckpvYiYgam9iLCBjb24KICAgICBBU1NFUlQobV9j
cmVhdGlvblRocmVhZC5wdHIoKSA9PSAmVGhyZWFkOjpjdXJyZW50KCkpOwogI2VuZGlmCiAKLSAg
ICBMT0coU2VydmljZVdvcmtlciwgIlNldmljZVdvcmtlckNvbnRhaW5lciAlcCBmaW5pc2hlZCBm
ZXRjaGluZyBzY3JpcHQgZm9yIGpvYiAlcyIsIHRoaXMsIGpvYi5pZGVudGlmaWVyKCkubG9nZ2lu
Z1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIENPTlRBSU5FUl9SRUxFQVNFX0xPR19JRl9B
TExPV0VEKCJqb2JGaW5pc2hlZExvYWRpbmdTY3JpcHQ6IFN1Y2Nlc3NmdWx5IGZpbmlzaGVkIGZl
dGNoaW5nIHNjcmlwdCBmb3Igam9iICVsbHUiLCBqb2IuaWRlbnRpZmllcigpLnRvVUludDY0KCkp
OwogCiAgICAgY2FsbE9uTWFpblRocmVhZChbY29ubmVjdGlvbiA9IG1fc3dDb25uZWN0aW9uLCBq
b2JEYXRhSWRlbnRpZmllciA9IGpvYi5kYXRhKCkuaWRlbnRpZmllcigpLCByZWdpc3RyYXRpb25L
ZXkgPSBqb2IuZGF0YSgpLnJlZ2lzdHJhdGlvbktleSgpLCBzY3JpcHQgPSBzY3JpcHQuaXNvbGF0
ZWRDb3B5KCksIGNvbnRlbnRTZWN1cml0eVBvbGljeSA9IGNvbnRlbnRTZWN1cml0eVBvbGljeS5p
c29sYXRlZENvcHkoKV0gewogICAgICAgICBjb25uZWN0aW9uLT5maW5pc2hGZXRjaGluZ1Njcmlw
dEluU2VydmVyKHsgam9iRGF0YUlkZW50aWZpZXIsIHJlZ2lzdHJhdGlvbktleSwgc2NyaXB0LCBj
b250ZW50U2VjdXJpdHlQb2xpY3ksIHsgfSB9KTsKQEAgLTQ5MCw3ICs1MTUsNyBAQCB2b2lkIFNl
cnZpY2VXb3JrZXJDb250YWluZXI6OmpvYkZhaWxlZExvYWRpbmdTY3JpcHQoU2VydmljZVdvcmtl
ckpvYiYgam9iLCBjb25zdAogI2VuZGlmCiAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShqb2IucHJv
bWlzZSgpIHx8IGpvYi5kYXRhKCkudHlwZSA9PSBTZXJ2aWNlV29ya2VySm9iVHlwZTo6VXBkYXRl
LCAiT25seSBzb2Z0IHVwZGF0ZXMgaGF2ZSBubyBwcm9taXNlIik7CiAKLSAgICBMT0coU2Vydmlj
ZVdvcmtlciwgIlNldmljZVdvcmtlckNvbnRhaW5lciAlcCBmYWlsZWQgZmV0Y2hpbmcgc2NyaXB0
IGZvciBqb2IgJXMiLCB0aGlzLCBqb2IuaWRlbnRpZmllcigpLmxvZ2dpbmdTdHJpbmcoKS51dGY4
KCkuZGF0YSgpKTsKKyAgICBDT05UQUlORVJfUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCgi
am9iRmluaXNoZWRMb2FkaW5nU2NyaXB0OiBGYWlsZWQgdG8gZmV0Y2ggc2NyaXB0IGZvciBqb2Ig
JWxsdSwgZXJyb3I6ICVzIiwgam9iLmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpLCBlcnJvci5sb2Nh
bGl6ZWREZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkpOwogCiAgICAgaWYgKGV4Y2VwdGlvbiAm
JiBqb2IucHJvbWlzZSgpKQogICAgICAgICBqb2IucHJvbWlzZSgpLT5yZWplY3QoKmV4Y2VwdGlv
bik7CkBAIC01OTcsNiArNjIyLDE5IEBAIERvY3VtZW50T3JXb3JrZXJJZGVudGlmaWVyIFNlcnZp
Y2VXb3JrZXJDb250YWluZXI6OmNvbnRleHRJZGVudGlmaWVyKCkKICAgICByZXR1cm4gZG93bmNh
c3Q8RG9jdW1lbnQ+KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpLmlkZW50aWZpZXIoKTsKIH0K
IAorYm9vbCBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjppc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQo
KSBjb25zdAoreworICAgIGF1dG8qIGNvbnRleHQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7
CisgICAgaWYgKCFjb250ZXh0KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoaXM8
RG9jdW1lbnQ+KCpjb250ZXh0KSkKKyAgICAgICAgcmV0dXJuIGRvd25jYXN0PERvY3VtZW50Pigq
Y29udGV4dCkuc2Vzc2lvbklEKCkuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCk7CisKKyAgICAv
LyBGSVhNRTogTm8gbG9nZ2luZyBpbnNpZGUgc2VydmljZSB3b3JrZXJzIGZvciBub3cuCisgICAg
cmV0dXJuIGZhbHNlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBF
TkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaAppbmRleCAxNGI1MjZmODM3OTNhOTBj
NzY4YzhjNTQ5OWUyNTBjMWJjY2M2NWQ4Li5hZDM4NTFiZTgwOWRiY2U3OWVmNDJiMWIxZjYyY2Vk
ZmRkY2Q0OGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlckNvbnRhaW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgKQEAgLTg0LDYgKzg0LDggQEAgcHVibGljOgogCiAg
ICAgYm9vbCBpc1N0b3BwZWQoKSBjb25zdCB7IHJldHVybiBtX2lzU3RvcHBlZDsgfTsKIAorICAg
IGJvb2wgaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCkgY29uc3Q7CisKIHByaXZhdGU6CiAgICAg
dm9pZCBzY2hlZHVsZUpvYihSZWY8U2VydmljZVdvcmtlckpvYj4mJik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uLmNwcAppbmRleCAwOTNlYTc1ZTliZDYxNThkYzhjZTI0NDI3OTIyNzI1NDQzOTEwN2Zj
Li5mMjY5YjhlNDRhM2E0NmI5OWY5ZmJlNmNhZjI4MGY2YjU1NGYzMGZjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb24uY3BwCkBAIC0zNyw2ICszNyw5IEBACiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclR5
cGVzLmgiCiAjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKIAorI2RlZmluZSBSRUdJU1RS
QVRJT05fUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChmbXQsIC4uLikgUkVMRUFTRV9MT0dfSUYobV9j
b250YWluZXItPmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBTZXJ2aWNlV29ya2VyLCAiJXAg
LSBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uOjoiIGZtdCwgdGhpcywgIyNfX1ZBX0FSR1NfXykK
KyNkZWZpbmUgUkVHSVNUUkFUSU9OX1JFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoZm10LCAu
Li4pIFJFTEVBU0VfTE9HX0VSUk9SX0lGKG1fY29udGFpbmVyLT5pc0Fsd2F5c09uTG9nZ2luZ0Fs
bG93ZWQoKSwgU2VydmljZVdvcmtlciwgIiVwIC0gU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbjo6
IiBmbXQsIHRoaXMsICMjX19WQV9BUkdTX18pCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVm
PFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24+IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb246Omdl
dE9yQ3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFJlZjxTZXJ2aWNlV29y
a2VyQ29udGFpbmVyPiYmIGNvbnRhaW5lciwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEm
JiBkYXRhKQpAQCAtNjQsNiArNjcsOCBAQCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uOjpTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbgogICAgIGlm
IChtX3JlZ2lzdHJhdGlvbkRhdGEuYWN0aXZlV29ya2VyKQogICAgICAgICBtX2FjdGl2ZVdvcmtl
ciA9IFNlcnZpY2VXb3JrZXI6OmdldE9yQ3JlYXRlKGNvbnRleHQsIFdURk1vdmUoKm1fcmVnaXN0
cmF0aW9uRGF0YS5hY3RpdmVXb3JrZXIpKTsKIAorICAgIFJFR0lTVFJBVElPTl9SRUxFQVNFX0xP
R19JRl9BTExPV0VEKCJTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uOiBJRCAlbGx1LCBpbnN0YWxs
aW5nOiAlbGx1LCB3YWl0aW5nOiAlbGx1LCBhY3RpdmU6ICVsbHUiLCBpZGVudGlmaWVyKCkudG9V
SW50NjQoKSwgbV9pbnN0YWxsaW5nV29ya2VyID8gbV9pbnN0YWxsaW5nV29ya2VyLT5pZGVudGlm
aWVyKCkudG9VSW50NjQoKSA6IDAsIG1fd2FpdGluZ1dvcmtlciA/IG1fd2FpdGluZ1dvcmtlci0+
aWRlbnRpZmllcigpLnRvVUludDY0KCkgOiAwLCBtX2FjdGl2ZVdvcmtlciA/IG1fYWN0aXZlV29y
a2VyLT5pZGVudGlmaWVyKCkudG9VSW50NjQoKSA6IDApOworCiAgICAgbV9jb250YWluZXItPmFk
ZFJlZ2lzdHJhdGlvbigqdGhpcyk7CiAKICAgICByZWxheEFkb3B0aW9uUmVxdWlyZW1lbnQoKTsK
QEAgLTE3MSwxMiArMTc2LDE1IEBAIHZvaWQgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbjo6dXBk
YXRlU3RhdGVGcm9tU2VydmVyKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25TCiB7CiAgICAgc3dp
dGNoIChzdGF0ZSkgewogICAgIGNhc2UgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvblN0YXRlOjpJ
bnN0YWxsaW5nOgorICAgICAgICBSRUdJU1RSQVRJT05fUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgi
dXBkYXRlU3RhdGVGcm9tU2VydmVyOiBTZXR0aW5nIHJlZ2lzdHJhdGlvbiAlbGx1IGluc3RhbGxp
bmcgd29ya2VyIHRvICVsbHUiLCBpZGVudGlmaWVyKCkudG9VSW50NjQoKSwgc2VydmljZVdvcmtl
ciA/IHNlcnZpY2VXb3JrZXItPmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpIDogMCk7CiAgICAgICAg
IG1faW5zdGFsbGluZ1dvcmtlciA9IFdURk1vdmUoc2VydmljZVdvcmtlcik7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvblN0YXRlOjpXYWl0aW5nOgor
ICAgICAgICBSRUdJU1RSQVRJT05fUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgidXBkYXRlU3RhdGVG
cm9tU2VydmVyOiBTZXR0aW5nIHJlZ2lzdHJhdGlvbiAlbGx1IHdhaXRpbmcgd29ya2VyIHRvICVs
bHUiLCBpZGVudGlmaWVyKCkudG9VSW50NjQoKSwgc2VydmljZVdvcmtlciA/IHNlcnZpY2VXb3Jr
ZXItPmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpIDogMCk7CiAgICAgICAgIG1fd2FpdGluZ1dvcmtl
ciA9IFdURk1vdmUoc2VydmljZVdvcmtlcik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvblN0YXRlOjpBY3RpdmU6CisgICAgICAgIFJFR0lTVFJBVElP
Tl9SRUxFQVNFX0xPR19JRl9BTExPV0VEKCJ1cGRhdGVTdGF0ZUZyb21TZXJ2ZXI6IFNldHRpbmcg
cmVnaXN0cmF0aW9uICVsbHUgYWN0aXZlIHdvcmtlciB0byAlbGx1IiwgaWRlbnRpZmllcigpLnRv
VUludDY0KCksIHNlcnZpY2VXb3JrZXIgPyBzZXJ2aWNlV29ya2VyLT5pZGVudGlmaWVyKCkudG9V
SW50NjQoKSA6IDApOwogICAgICAgICBtX2FjdGl2ZVdvcmtlciA9IFdURk1vdmUoc2VydmljZVdv
cmtlcik7CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTE5Miw2ICsyMDAsOCBAQCB2b2lkIFNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb246OnNjaGVkdWxlVGFza1RvRmlyZVVwZGF0ZUZvdW5kRXZl
bnQoKQogICAgICAgICBpZiAobV9pc1N0b3BwZWQpCiAgICAgICAgICAgICByZXR1cm47CiAKKyAg
ICAgICAgUkVHSVNUUkFUSU9OX1JFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInNjaGVkdWxlVGFza1Rv
RmlyZVVwZGF0ZUZvdW5kRXZlbnQ6IEZpcmluZyB1cGRhdGVmb3VuZCBldmVudCBmb3IgcmVnaXN0
cmF0aW9uICVsbHUiLCBpZGVudGlmaWVyKCkudG9VSW50NjQoKSk7CisKICAgICAgICAgQVNTRVJU
KG1fcGVuZGluZ0FjdGl2aXR5Rm9yRXZlbnREaXNwYXRjaCk7CiAgICAgICAgIGRpc3BhdGNoRXZl
bnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkudXBkYXRlZm91bmRFdmVudCwgZmFsc2UsIGZh
bHNlKSk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2Uvc2VydmVyL1NXU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXIuY3BwCmluZGV4IDE2MWQxNWIwNjFhNTM2N2JlNDk0ODhhZmJjYTMyNGU4
MzQzN2M3ZmEuLjYzMmM3YWU3MzgwM2FlYjcxMjU4ZmQ5MTAyYjA0YzU3NjM4NGYxZDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3Bw
CkBAIC0zMzQsNiArMzM0LDggQEAgdm9pZCBTV1NlcnZlcjo6c2NyaXB0Q29udGV4dEZhaWxlZFRv
U3RhcnQoY29uc3Qgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VySm9iRGEKICAgICBpZiAoIWpv
YkRhdGFJZGVudGlmaWVyKQogICAgICAgICByZXR1cm47CiAKKyAgICBSRUxFQVNFX0xPR19FUlJP
UihTZXJ2aWNlV29ya2VyLCAiJXAgLSBTV1NlcnZlcjo6c2NyaXB0Q29udGV4dEZhaWxlZFRvU3Rh
cnQ6IEZhaWxlZCB0byBzdGFydCBTVyBmb3Igam9iICVzLCBlcnJvcjogJXMiLCB0aGlzLCBqb2JE
YXRhSWRlbnRpZmllci0+bG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIG1lc3NhZ2UudXRm
OCgpLmRhdGEoKSk7CisKICAgICBpZiAoYXV0byogam9iUXVldWUgPSBtX2pvYlF1ZXVlcy5nZXQo
d29ya2VyLnJlZ2lzdHJhdGlvbktleSgpKSkKICAgICAgICAgam9iUXVldWUtPnNjcmlwdENvbnRl
eHRGYWlsZWRUb1N0YXJ0KCpqb2JEYXRhSWRlbnRpZmllciwgd29ya2VyLmlkZW50aWZpZXIoKSwg
bWVzc2FnZSk7CiB9CkBAIC0zNTIsMTIgKzM1NCwxOSBAQCB2b2lkIFNXU2VydmVyOjpkaWRGaW5p
c2hJbnN0YWxsKGNvbnN0IHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlm
aQogICAgIGlmICgham9iRGF0YUlkZW50aWZpZXIpCiAgICAgICAgIHJldHVybjsKIAorICAgIGlm
ICh3YXNTdWNjZXNzZnVsKQorICAgICAgICBSRUxFQVNFX0xPRyhTZXJ2aWNlV29ya2VyLCAiJXAg
LSBTV1NlcnZlcjo6ZGlkRmluaXNoSW5zdGFsbDogU3VjY2Vzc2Z1bHkgZmluaXNoZWQgU1cgaW5z
dGFsbCBmb3Igam9iICVzIiwgdGhpcywgam9iRGF0YUlkZW50aWZpZXItPmxvZ2dpbmdTdHJpbmco
KS51dGY4KCkuZGF0YSgpKTsKKyAgICBlbHNlCisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFNl
cnZpY2VXb3JrZXIsICIlcCAtIFNXU2VydmVyOjpkaWRGaW5pc2hJbnN0YWxsOiBGYWlsZWQgU1cg
aW5zdGFsbCBmb3Igam9iICVzIiwgdGhpcywgam9iRGF0YUlkZW50aWZpZXItPmxvZ2dpbmdTdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKKwogICAgIGlmIChhdXRvKiBqb2JRdWV1ZSA9IG1fam9iUXVl
dWVzLmdldCh3b3JrZXIucmVnaXN0cmF0aW9uS2V5KCkpKQogICAgICAgICBqb2JRdWV1ZS0+ZGlk
RmluaXNoSW5zdGFsbCgqam9iRGF0YUlkZW50aWZpZXIsIHdvcmtlci5pZGVudGlmaWVyKCksIHdh
c1N1Y2Nlc3NmdWwpOwogfQogCiB2b2lkIFNXU2VydmVyOjpkaWRGaW5pc2hBY3RpdmF0aW9uKFNX
U2VydmVyV29ya2VyJiB3b3JrZXIpCiB7CisgICAgUkVMRUFTRV9MT0coU2VydmljZVdvcmtlciwg
IiVwIC0gU1dTZXJ2ZXI6OmRpZEZpbmlzaEFjdGl2YXRpb246IEZpbmlzaGVkIGFjdGl2YXRpb24g
Zm9yIHNlcnZpY2Ugd29ya2VyICVsbHUiLCB0aGlzLCB3b3JrZXIuaWRlbnRpZmllcigpLnRvVUlu
dDY0KCkpOworCiAgICAgaWYgKGF1dG8qIHJlZ2lzdHJhdGlvbiA9IGdldFJlZ2lzdHJhdGlvbih3
b3JrZXIucmVnaXN0cmF0aW9uS2V5KCkpKQogICAgICAgICByZWdpc3RyYXRpb24tPmRpZEZpbmlz
aEFjdGl2YXRpb24od29ya2VyLmlkZW50aWZpZXIoKSk7CiB9CkBAIC01NzUsNiArNTg0LDggQEAg
dm9pZCBTV1NlcnZlcjo6dGVybWluYXRlV29ya2VySW50ZXJuYWwoU1dTZXJ2ZXJXb3JrZXImIHdv
cmtlciwgVGVybWluYXRpb25Nb2RlIG0KICAgICBBU1NFUlQobV9ydW5uaW5nT3JUZXJtaW5hdGlu
Z1dvcmtlcnMuZ2V0KHdvcmtlci5pZGVudGlmaWVyKCkpID09ICZ3b3JrZXIpOwogICAgIEFTU0VS
VCh3b3JrZXIuaXNSdW5uaW5nKCkpOwogCisgICAgUkVMRUFTRV9MT0coU2VydmljZVdvcmtlciwg
IiVwIC0gU1dTZXJ2ZXI6OnRlcm1pbmF0ZVdvcmtlckludGVybmFsOiBUZXJtaW5hdGluZyBzZXJ2
aWNlIHdvcmtlciAlbGx1IiwgdGhpcywgd29ya2VyLmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpKTsK
KwogICAgIHdvcmtlci5zZXRTdGF0ZShTV1NlcnZlcldvcmtlcjo6U3RhdGU6OlRlcm1pbmF0aW5n
KTsKIAogICAgIGF1dG8qIGNvbm5lY3Rpb24gPSBTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246
OmNvbm5lY3Rpb25Gb3JJZGVudGlmaWVyKHdvcmtlci5jb250ZXh0Q29ubmVjdGlvbklkZW50aWZp
ZXIoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVy
L1NXU2VydmVySm9iUXVldWUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZlci9TV1NlcnZlckpvYlF1ZXVlLmNwcAppbmRleCBkYjNiODFmZmFkMTE4YWFkNDAyMjlkMzY5
YTliY2NmMmEwODExMzE5Li4wZTE1NTIyZmM4MzQ4Zjk4NzBkNTIwMmVkMjY1YjQzYzBlMDUwYTk0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2Vy
dmVySm9iUXVldWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dTZXJ2ZXJKb2JRdWV1ZS5jcHAKQEAgLTE1OSw2ICsxNTksOCBAQCB2b2lkIFNXU2VydmVy
Sm9iUXVldWU6OmRpZFJlc29sdmVSZWdpc3RyYXRpb25Qcm9taXNlKCkKICAgICBBU1NFUlQocmVn
aXN0cmF0aW9uKTsKICAgICBBU1NFUlQocmVnaXN0cmF0aW9uLT5pbnN0YWxsaW5nV29ya2VyKCkp
OwogCisgICAgUkVMRUFTRV9MT0coU2VydmljZVdvcmtlciwgIiVwIC0gU1dTZXJ2ZXJKb2JRdWV1
ZTo6ZGlkUmVzb2x2ZVJlZ2lzdHJhdGlvblByb21pc2U6IFJlZ2lzdHJhdGlvbiBJRDogJWxsdS4g
Tm93IHByb2NlZWRpbmcgd2l0aCBpbnN0YWxsIiwgdGhpcywgcmVnaXN0cmF0aW9uLT5pZGVudGlm
aWVyKCkudG9VSW50NjQoKSk7CisKICAgICAvLyBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhbiBldmVu
dCBuYW1lZCB1cGRhdGVmb3VuZCBhdCBhbGwgdGhlIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24g
b2JqZWN0cwogICAgIC8vIGZvciBhbGwgdGhlIHNlcnZpY2Ugd29ya2VyIGNsaWVudHMgd2hvc2Ug
Y3JlYXRpb24gVVJMIG1hdGNoZXMgcmVnaXN0cmF0aW9uJ3Mgc2NvcGUgdXJsIGFuZAogICAgIC8v
IGFsbCB0aGUgc2VydmljZSB3b3JrZXJzIHdob3NlIGNvbnRhaW5pbmcgc2VydmljZSB3b3JrZXIg
cmVnaXN0cmF0aW9uIGlzIHJlZ2lzdHJhdGlvbi4KQEAgLTI2Myw2ICsyNjUsNyBAQCB2b2lkIFNX
U2VydmVySm9iUXVldWU6OnJ1blJlZ2lzdGVySm9iKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRh
JiBqb2IpCiAgICAgICAgIHJlZ2lzdHJhdGlvbi0+c2V0SXNVbmluc3RhbGxpbmcoZmFsc2UpOwog
ICAgICAgICBhdXRvKiBuZXdlc3RXb3JrZXIgPSByZWdpc3RyYXRpb24tPmdldE5ld2VzdFdvcmtl
cigpOwogICAgICAgICBpZiAobmV3ZXN0V29ya2VyICYmIGVxdWFsSWdub3JpbmdGcmFnbWVudElk
ZW50aWZpZXIoam9iLnNjcmlwdFVSTCwgbmV3ZXN0V29ya2VyLT5zY3JpcHRVUkwoKSkgJiYgam9i
LnJlZ2lzdHJhdGlvbk9wdGlvbnMudXBkYXRlVmlhQ2FjaGUgPT0gcmVnaXN0cmF0aW9uLT51cGRh
dGVWaWFDYWNoZSgpKSB7CisgICAgICAgICAgICBSRUxFQVNFX0xPRyhTZXJ2aWNlV29ya2VyLCAi
JXAgLSBTV1NlcnZlckpvYlF1ZXVlOjpydW5SZWdpc3RlckpvYjogRm91bmQgZGlyZWN0bHkgcmV1
c2FibGUgcmVnaXN0cmF0aW9uICVsbHUgZm9yIGpvYiAlcyAoRE9ORSkiLCB0aGlzLCByZWdpc3Ry
YXRpb24tPmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpLCBqb2IuaWRlbnRpZmllcigpLmxvZ2dpbmdT
dHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgICAgIG1fc2VydmVyLnJlc29sdmVSZWdp
c3RyYXRpb25Kb2Ioam9iLCByZWdpc3RyYXRpb24tPmRhdGEoKSwgU2hvdWxkTm90aWZ5V2hlblJl
c29sdmVkOjpObyk7CiAgICAgICAgICAgICBmaW5pc2hDdXJyZW50Sm9iKCk7CiAgICAgICAgICAg
ICByZXR1cm47CkBAIC0yNzAsOSArMjczLDEyIEBAIHZvaWQgU1dTZXJ2ZXJKb2JRdWV1ZTo6cnVu
UmVnaXN0ZXJKb2IoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmIGpvYikKICAgICAgICAgLy8g
VGhpcyBpcyBub3Qgc3BlY2lmaWVkIHlldCAoaHR0cHM6Ly9naXRodWIuY29tL3czYy9TZXJ2aWNl
V29ya2VyL2lzc3Vlcy8xMTg5KS4KICAgICAgICAgaWYgKHJlZ2lzdHJhdGlvbi0+dXBkYXRlVmlh
Q2FjaGUoKSAhPSBqb2IucmVnaXN0cmF0aW9uT3B0aW9ucy51cGRhdGVWaWFDYWNoZSkKICAgICAg
ICAgICAgIHJlZ2lzdHJhdGlvbi0+c2V0VXBkYXRlVmlhQ2FjaGUoam9iLnJlZ2lzdHJhdGlvbk9w
dGlvbnMudXBkYXRlVmlhQ2FjaGUpOworICAgICAgICBSRUxFQVNFX0xPRyhTZXJ2aWNlV29ya2Vy
LCAiJXAgLSBTV1NlcnZlckpvYlF1ZXVlOjpydW5SZWdpc3RlckpvYjogRm91bmQgcmVnaXN0cmF0
aW9uICVsbHUgZm9yIGpvYiAlcyBidXQgaXQgbmVlZHMgdXBkYXRpbmciLCB0aGlzLCByZWdpc3Ry
YXRpb24tPmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpLCBqb2IuaWRlbnRpZmllcigpLmxvZ2dpbmdT
dHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICAgICB9IGVsc2UgewogICAgICAgICBhdXRvIG5ld1Jl
Z2lzdHJhdGlvbiA9IHN0ZDo6bWFrZV91bmlxdWU8U1dTZXJ2ZXJSZWdpc3RyYXRpb24+KG1fc2Vy
dmVyLCBtX3JlZ2lzdHJhdGlvbktleSwgam9iLnJlZ2lzdHJhdGlvbk9wdGlvbnMudXBkYXRlVmlh
Q2FjaGUsIGpvYi5zY29wZVVSTCwgam9iLnNjcmlwdFVSTCk7CiAgICAgICAgIG1fc2VydmVyLmFk
ZFJlZ2lzdHJhdGlvbihXVEZNb3ZlKG5ld1JlZ2lzdHJhdGlvbikpOworCisgICAgICAgIFJFTEVB
U0VfTE9HKFNlcnZpY2VXb3JrZXIsICIlcCAtIFNXU2VydmVySm9iUXVldWU6OnJ1blJlZ2lzdGVy
Sm9iOiBObyBleGlzdGluZyByZWdpc3RyYXRpb24gZm9yIGpvYiAlcywgY29uc3RydWN0aW5nIGEg
bmV3IG9uZS4iLCB0aGlzLCBqb2IuaWRlbnRpZmllcigpLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCku
ZGF0YSgpKTsKICAgICB9CiAKICAgICBydW5VcGRhdGVKb2Ioam9iKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5l
Y3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dl
YlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKaW5kZXggMThkODQxZDQ2ZmIzNzA4YmFkZGYzZmUyMDMw
YzA5M2FlMzkxNWNiOC4uZDFkMTE1OWM2MWMyMTBkY2YwM2ExZGY3OTg5NmJhZjFjODNkNTU3ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dl
YlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKQEAgLTU2LDYgKzU2LDkg
QEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCisjZGVm
aW5lIFNXU0VSVkVSQ09OTkVDVElPTl9SRUxFQVNFX0xPR19JRl9BTExPV0VEKGZtdCwgLi4uKSBS
RUxFQVNFX0xPR19JRihtX3Nlc3Npb25JRC5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgU2Vy
dmljZVdvcmtlciwgIiVwIC0gV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjoiIGZtdCwgdGhpcywgIyNf
X1ZBX0FSR1NfXykKKyNkZWZpbmUgU1dTRVJWRVJDT05ORUNUSU9OX1JFTEVBU0VfTE9HX0VSUk9S
X0lGX0FMTE9XRUQoZm10LCAuLi4pIFJFTEVBU0VfTE9HX0VSUk9SX0lGKG1fc2Vzc2lvbklELmlz
QWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBTZXJ2aWNlV29ya2VyLCAiJXAgLSBXZWJTV1NlcnZl
ckNvbm5lY3Rpb246OiIgZm10LCB0aGlzLCAjI19fVkFfQVJHU19fKQorCiBXZWJTV1NlcnZlckNv
bm5lY3Rpb246OldlYlNXU2VydmVyQ29ubmVjdGlvbihTV1NlcnZlciYgc2VydmVyLCBJUEM6OkNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24sIFNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgOiBTV1NlcnZl
cjo6Q29ubmVjdGlvbihzZXJ2ZXIpCiAgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCkBAIC0x
MzAsNiArMTMzLDcgQEAgdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnN0YXJ0RmV0Y2godWlu
dDY0X3QgZmV0Y2hJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyUmUKIHsKICAgICBhdXRvKiB3b3Jr
ZXIgPSBzZXJ2ZXIoKS5hY3RpdmVXb3JrZXJGcm9tUmVnaXN0cmF0aW9uSUQoc2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbklkZW50aWZpZXIpOwogICAgIGlmICghd29ya2VyKSB7CisgICAgICAgIFNX
U0VSVkVSQ09OTkVDVElPTl9SRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKCJzdGFydEZldGNo
OiBmZXRjaElkZW50aWZpZXI6ICVsbHUgLT4gRGlkTm90SGFuZGxlIGJlY2F1c2Ugbm8gYWN0aXZl
IHdvcmtlciIsIGZldGNoSWRlbnRpZmllcik7CiAgICAgICAgIG1fY29udGVudENvbm5lY3Rpb24t
PnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6RGlkTm90SGFuZGxlIHsg
fSwgZmV0Y2hJZGVudGlmaWVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE0MCw2ICsx
NDQsNyBAQCB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6c3RhcnRGZXRjaCh1aW50NjRfdCBm
ZXRjaElkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJSZQogICAgICAgICAgICAgcmV0dXJuOwogCiAg
ICAgICAgIGlmICghc3VjY2VzcykgeworICAgICAgICAgICAgU1dTRVJWRVJDT05ORUNUSU9OX1JF
TEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoInN0YXJ0RmV0Y2g6IGZldGNoSWRlbnRpZmllcjog
JWxsdSAtPiBEaWROb3RIYW5kbGUgYmVjYXVzZSB3b3JrZXIgZGlkIG5vdCBiZWNvbWUgYWN0aXZh
dGVkIiwgZmV0Y2hJZGVudGlmaWVyKTsKICAgICAgICAgICAgIG1fY29udGVudENvbm5lY3Rpb24t
PnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6RGlkTm90SGFuZGxlIHsg
fSwgZmV0Y2hJZGVudGlmaWVyKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAt
MTQ4LDEwICsxNTMsMTMgQEAgdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnN0YXJ0RmV0Y2go
dWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyUmUKICAgICAgICAgICAgIGlm
ICghd2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgICAgICBpZiAo
c3VjY2VzcykKKyAgICAgICAgICAgIGlmIChzdWNjZXNzKSB7CisgICAgICAgICAgICAgICAgU1dT
RVJWRVJDT05ORUNUSU9OX1JFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0RmV0Y2g6IFN0YXJ0
aW5nIGZldGNoICVsbHUgdmlhIHNlcnZpY2Ugd29ya2VyICVsbHUiLCBmZXRjaElkZW50aWZpZXIs
IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLnRvVUludDY0KCkpOwogICAgICAgICAgICAgICAgIHNl
bmRUb0NvbnRleHRQcm9jZXNzKGNvbnRleHRDb25uZWN0aW9uLCBNZXNzYWdlczo6V2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb246OlN0YXJ0RmV0Y2ggeyBpZGVudGlmaWVyKCksIGZldGNoSWRl
bnRpZmllciwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIHJlcXVlc3QsIG9wdGlvbnMsIGZvcm1E
YXRhLCByZWZlcnJlciB9KTsKLSAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICAgICAgU1dTRVJWRVJDT05ORUNUSU9OX1JFTEVBU0VfTE9HX0VSUk9SX0lG
X0FMTE9XRUQoInN0YXJ0RmV0Y2g6IGZldGNoSWRlbnRpZmllcjogJWxsdSAtPiBEaWROb3RIYW5k
bGUgYmVjYXVzZSBmYWlsZWQgdG8gcnVuIHNlcnZpY2Ugd29ya2VyIiwgZmV0Y2hJZGVudGlmaWVy
KTsKICAgICAgICAgICAgICAgICBtX2NvbnRlbnRDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpT
ZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OkRpZE5vdEhhbmRsZSB7IH0sIGZldGNoSWRlbnRpZmll
cik7CisgICAgICAgICAgICB9CiAgICAgICAgIH0pOwogICAgIH07CiAKQEAgLTIwMSwxNiArMjA5
LDE5IEBAIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpkaWRSZWNlaXZlRmV0Y2hGb3JtRGF0
YSh1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIGNvCiAKIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uOjpkaWRGaW5pc2hGZXRjaCh1aW50NjRfdCBmZXRjaElkZW50aWZpZXIpCiB7CisgICAgU1dT
RVJWRVJDT05ORUNUSU9OX1JFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZEZpbmlzaEZldGNoOiBm
ZXRjaElkZW50aWZpZXI6ICVsbHUiLCBmZXRjaElkZW50aWZpZXIpOwogICAgIG1fY29udGVudENv
bm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6RGlkRmlu
aXNoIHsgfSwgZmV0Y2hJZGVudGlmaWVyKTsKIH0KIAogdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rp
b246OmRpZEZhaWxGZXRjaCh1aW50NjRfdCBmZXRjaElkZW50aWZpZXIpCiB7CisgICAgU1dTRVJW
RVJDT05ORUNUSU9OX1JFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoImRpZEZhaWxGZXRjaDog
ZmV0Y2hJZGVudGlmaWVyOiAlbGx1IiwgZmV0Y2hJZGVudGlmaWVyKTsKICAgICBtX2NvbnRlbnRD
b25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OkRpZEZh
aWwgeyB9LCBmZXRjaElkZW50aWZpZXIpOwogfQogCiB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlv
bjo6ZGlkTm90SGFuZGxlRmV0Y2godWludDY0X3QgZmV0Y2hJZGVudGlmaWVyKQogeworICAgIFNX
U0VSVkVSQ09OTkVDVElPTl9SRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWROb3RIYW5kbGVGZXRj
aDogZmV0Y2hJZGVudGlmaWVyOiAlbGx1IiwgZmV0Y2hJZGVudGlmaWVyKTsKICAgICBtX2NvbnRl
bnRDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OkRp
ZE5vdEhhbmRsZSB7IH0sIGZldGNoSWRlbnRpZmllcik7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>331946</attachid>
            <date>2018-01-22 11:59:23 -0800</date>
            <delta_ts>2018-01-22 13:08:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181935-20180122115922.patch</filename>
            <type>text/plain</type>
            <size>30372</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI3Mjk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWY5ODFkZGNjNjU2ZjNk
ZGMzNzdhZWM3OWY0NmU4NTRmNTkzZjZjNi4uYjgzN2FhZWE3MTQyNWMwNzNhZjNlMGRlYmZkOGQ2
MzNjYjZiZGVjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE4LTAxLTIyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHJlbGVhc2UgbG9nZ2lu
ZyB0byBoZWxwIGRlYnVnIGlzc3VlcyByZWxhdGVkIHRvIHNlcnZpY2Ugd29ya2VycworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxOTM1CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS8zNjczNTkwMD4KKworICAgICAgICBSZXZpZXdlZCBieSBCcmFkeSBF
aWRzb24uCisKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyOjpTZXJ2aWNlV29ya2VyKToKKyAgICAgICAg
KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXI6OnNjaGVkdWxlVGFza1RvVXBkYXRlU3RhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlcjo6cG9zdE1lc3NhZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6U2VydmljZVdvcmtlcjo6aXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkIGNvbnN0KToKKyAg
ICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5oOgorICAgICAgICAqIHdvcmtl
cnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJDb250YWluZXI6OmFkZFJlZ2lzdHJhdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpyZW1vdmVSZWdpc3RyYXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRhaW5lcjo6dXBkYXRlUmVnaXN0cmF0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250YWluZXI6OmpvYkZhaWxlZFdpdGhF
eGNlcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRhaW5lcjo6am9i
UmVzb2x2ZWRXaXRoUmVnaXN0cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJDb250YWluZXI6OmpvYlJlc29sdmVkV2l0aFVucmVnaXN0cmF0aW9uUmVzdWx0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250YWluZXI6OnN0YXJ0U2NyaXB0RmV0Y2hGb3JK
b2IpOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRhaW5lcjo6am9iRmluaXNo
ZWRMb2FkaW5nU2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250YWlu
ZXI6OmpvYkZhaWxlZExvYWRpbmdTY3JpcHQpOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdv
cmtlckNvbnRhaW5lcjo6aXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkIGNvbnN0KToKKyAgICAgICAg
KiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oOgorICAgICAgICAqIHdv
cmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb246OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbjo6dXBkYXRl
U3RhdGVGcm9tU2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb246OnNjaGVkdWxlVGFza1RvRmlyZVVwZGF0ZUZvdW5kRXZlbnQpOgorICAgICAgICAqIHdv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dT
ZXJ2ZXI6OnNjcmlwdENvbnRleHRGYWlsZWRUb1N0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlNX
U2VydmVyOjpkaWRGaW5pc2hJbnN0YWxsKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjpk
aWRGaW5pc2hBY3RpdmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjp0ZXJtaW5h
dGVXb3JrZXJJbnRlcm5hbCk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1Nl
cnZlckpvYlF1ZXVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVySm9iUXVldWU6OmRp
ZFJlc29sdmVSZWdpc3RyYXRpb25Qcm9taXNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVy
Sm9iUXVldWU6OnJ1blJlZ2lzdGVySm9iKToKKwogMjAxOC0wMS0yMiAgSmF2aWVyIEZlcm5hbmRl
eiAgPGpmZXJuYW5kZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbY3NzLWFsaWduXSAnb3ZlcmZs
b3cnIGtleXdvcmQgbXVzdCBwcmVjZWRlIHRoZSBzZWxmLXBvc2l0aW9uIGFuZCBjb250ZW50LXBv
c2l0aW9uIHZhbHVlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI5YmI3Y2Q1YjE0OWMxNTA2YWYzYTUyOTdkOGRhODc1
MTY4YTk4MTAuLmY1NzlmYjFjNWFiZjhiYTdhZmE3ZTEyY2QxYzFkMmMwMjFkMmVhNjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTgtMDEtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KKworICAgICAgICBBZGQgcmVsZWFzZSBsb2dnaW5nIHRvIGhlbHAgZGVidWcgaXNz
dWVzIHJlbGF0ZWQgdG8gc2VydmljZSB3b3JrZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODE5MzUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM2
NzM1OTAwPgorCisgICAgICAgIFJldmlld2VkIGJ5IEJyYWR5IEVpZHNvbi4KKworICAgICAgICAq
IFN0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzdGFydEZldGNoKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpkaWRGaW5pc2hGZXRjaCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6ZGlkRmFpbEZldGNoKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpkaWROb3RIYW5kbGVGZXRjaCk6
CisKIDIwMTgtMDEtMjIgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4IGFmdGVyIHIyMjcyOTIuIEZpeGluZyBhIGJhZCBj
b3B5LXBhc3RlIHRoYXQgYnJva2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VyLmNwcAppbmRleCBlOWY4Y2IwNDIyMDBlZTQ5NGVhMDZhNzQzZDFlMDYy
OTI4ZDcyYTY2Li4wYjhjZTkzMTViYzA4OGNmMGNkOGY2M2MwNjA3ODRkYjU2NjJmMDc5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuY3BwCkBA
IC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV2ZW50
TmFtZXMuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIK
ICNpbmNsdWRlICJTV0NsaWVudENvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRp
b25Db250ZXh0LmgiCkBAIC00MCw2ICs0MSw5IEBACiAjaW5jbHVkZSA8cnVudGltZS9KU0NKU1Zh
bHVlSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCisjZGVmaW5l
IFdPUktFUl9SRUxFQVNFX0xPR19JRl9BTExPV0VEKGZtdCwgLi4uKSBSRUxFQVNFX0xPR19JRihp
c0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgU2VydmljZVdvcmtlciwgIiVwIC0gU2VydmljZVdv
cmtlcjo6IiBmbXQsIHRoaXMsICMjX19WQV9BUkdTX18pCisjZGVmaW5lIFdPUktFUl9SRUxFQVNF
X0xPR19FUlJPUl9JRl9BTExPV0VEKGZtdCwgLi4uKSBSRUxFQVNFX0xPR19FUlJPUl9JRihpc0Fs
d2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgU2VydmljZVdvcmtlciwgIiVwIC0gU2VydmljZVdvcmtl
cjo6IiBmbXQsIHRoaXMsICMjX19WQV9BUkdTX18pCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
UmVmPFNlcnZpY2VXb3JrZXI+IFNlcnZpY2VXb3JrZXI6OmdldE9yQ3JlYXRlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmIGNvbnRleHQsIFNlcnZpY2VXb3JrZXJEYXRhJiYgZGF0YSkKQEAgLTU5LDYg
KzYzLDggQEAgU2VydmljZVdvcmtlcjo6U2VydmljZVdvcmtlcihTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250ZXh0LCBTZXJ2aWNlV29ya2VyRGF0YSYKIAogICAgIHJlbGF4QWRvcHRpb25SZXF1
aXJlbWVudCgpOwogICAgIHVwZGF0ZVBlbmRpbmdBY3Rpdml0eUZvckV2ZW50RGlzcGF0Y2goKTsK
KworICAgIFdPUktFUl9SRUxFQVNFX0xPR19JRl9BTExPV0VEKCJTZXJ2aWNlV29ya2VyOiBJRDog
JWxsdSwgc3RhdGU6ICV1IiwgaWRlbnRpZmllcigpLnRvVUludDY0KCksIG1fZGF0YS5zdGF0ZSk7
CiB9CiAKIFNlcnZpY2VXb3JrZXI6On5TZXJ2aWNlV29ya2VyKCkKQEAgLTc2LDYgKzgyLDcgQEAg
dm9pZCBTZXJ2aWNlV29ya2VyOjpzY2hlZHVsZVRhc2tUb1VwZGF0ZVN0YXRlKFN0YXRlIHN0YXRl
KQogICAgIGNvbnRleHQtPnBvc3RUYXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigq
dGhpcyksIHN0YXRlXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgewogICAgICAgICBBU1NFUlQo
dGhpcy0+c3RhdGUoKSAhPSBzdGF0ZSk7CiAKKyAgICAgICAgV09SS0VSX1JFTEVBU0VfTE9HX0lG
X0FMTE9XRUQoInNjaGVkdWxlVGFza1RvVXBkYXRlU3RhdGU6IFVwZGF0aW5nIHNlcnZpY2Ugd29y
a2VyICVsbHUgc3RhdGUgZnJvbSAldSB0byAldS4gUmVnaXN0cmF0aW9uIElEOiAlbGx1IiwgaWRl
bnRpZmllcigpLnRvVUludDY0KCksIG1fZGF0YS5zdGF0ZSwgc3RhdGUsIHJlZ2lzdHJhdGlvbklk
ZW50aWZpZXIoKS50b1VJbnQ2NCgpKTsKICAgICAgICAgbV9kYXRhLnN0YXRlID0gc3RhdGU7CiAg
ICAgICAgIGlmIChzdGF0ZSAhPSBTdGF0ZTo6SW5zdGFsbGluZyAmJiAhbV9pc1N0b3BwZWQpIHsK
ICAgICAgICAgICAgIEFTU0VSVChtX3BlbmRpbmdBY3Rpdml0eUZvckV2ZW50RGlzcGF0Y2gpOwpA
QCAtMTExLDggKzExOCwxMCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBTZXJ2aWNlV29ya2VyOjpwb3N0
TWVzc2FnZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBKUwogCiAgICAgLy8gRklY
TUU6IFN1cHBvcnQgc2VuZGluZyB0aGUgY2hhbm5lbHMuCiAgICAgYXV0byBjaGFubmVscyA9IGNo
YW5uZWxzT3JFeGNlcHRpb24ucmVsZWFzZVJldHVyblZhbHVlKCk7Ci0gICAgaWYgKCFjaGFubmVs
cy5pc0VtcHR5KCkpCisgICAgaWYgKCFjaGFubmVscy5pc0VtcHR5KCkpIHsKKyAgICAgICAgV09S
S0VSX1JFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoInBvc3RNZXNzYWdlOiBQYXNzaW5nIE1l
c3NhZ2VQb3J0IG9iamVjdHMgdG8gcG9zdE1lc3NhZ2UgaXMgbm90IHlldCBzdXBwb3J0ZWQiKTsK
ICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCBBU0NJSUxpdGVy
YWwoIlBhc3NpbmcgTWVzc2FnZVBvcnQgb2JqZWN0cyB0byBwb3N0TWVzc2FnZSBpcyBub3QgeWV0
IHN1cHBvcnRlZCIpIH07CisgICAgfQogCiAgICAgU2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRp
ZmllciBzb3VyY2VJZGVudGlmaWVyOwogICAgIGlmIChpczxTZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGU+KGNvbnRleHQpKQpAQCAtMTcwLDYgKzE3OSwxOSBAQCB2b2lkIFNlcnZpY2VXb3JrZXI6OnVw
ZGF0ZVBlbmRpbmdBY3Rpdml0eUZvckV2ZW50RGlzcGF0Y2goKQogICAgIG1fcGVuZGluZ0FjdGl2
aXR5Rm9yRXZlbnREaXNwYXRjaCA9IG1ha2VQZW5kaW5nQWN0aXZpdHkoKnRoaXMpOwogfQogCiti
b29sIFNlcnZpY2VXb3JrZXI6OmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpIGNvbnN0Cit7Cisg
ICAgYXV0byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICBpZiAoIWNv
bnRleHQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1dG8qIGNvbnRhaW5lciA9IGNv
bnRleHQtPnNlcnZpY2VXb3JrZXJDb250YWluZXIoKTsKKyAgICBpZiAoIWNvbnRhaW5lcikKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIGNvbnRhaW5lci0+aXNBbHdheXNPbkxv
Z2dpbmdBbGxvd2VkKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8v
IEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlci5oCmluZGV4IGU3NzFiMWEwMTBiMWRkMzc4N2QxZjNhMzI1YjQ5MTA0
NDQ1MDA1MWYuLjE1N2RlODVlOGQxNjMwZjYwNjkwYTBjNjU3MGZhOTM5ODEyOTYyOTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuaApAQCAtNzgs
NiArNzgsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgY2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVu
c2lvbigpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgc3RvcCgpIGZpbmFsOwogCisgICAgYm9vbCBp
c0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSBjb25zdDsKKwogICAgIFNlcnZpY2VXb3JrZXJEYXRh
IG1fZGF0YTsKICAgICBib29sIG1faXNTdG9wcGVkIHsgZmFsc2UgfTsKICAgICBSZWZQdHI8UGVu
ZGluZ0FjdGl2aXR5PFNlcnZpY2VXb3JrZXI+PiBtX3BlbmRpbmdBY3Rpdml0eUZvckV2ZW50RGlz
cGF0Y2g7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vydmlj
ZVdvcmtlckNvbnRhaW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlckNvbnRhaW5lci5jcHAKaW5kZXggMTU3YmZkMDBjOTQ5MzEzMDBjNjZkMDU4ZjYy
MzBhMmJkNDcxMDU3Zi4uZTYwMzE0OTc5YWM3NWIyNGNjMGZiZmM5ODExOThlNzRmOGRhZDE3YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJD
b250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyQ29udGFpbmVyLmNwcApAQCAtNTIsNiArNTIsOSBAQAogI2luY2x1ZGUgPHd0Zi9SdW5M
b29wLmg+CiAjaW5jbHVkZSA8d3RmL1Njb3BlLmg+CiAKKyNkZWZpbmUgQ09OVEFJTkVSX1JFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoZm10LCAuLi4pIFJFTEVBU0VfTE9HX0lGKGlzQWx3YXlzT25Mb2dn
aW5nQWxsb3dlZCgpLCBTZXJ2aWNlV29ya2VyLCAiJXAgLSBTZXJ2aWNlV29ya2VyQ29udGFpbmVy
OjoiIGZtdCwgdGhpcywgIyNfX1ZBX0FSR1NfXykKKyNkZWZpbmUgQ09OVEFJTkVSX1JFTEVBU0Vf
TE9HX0VSUk9SX0lGX0FMTE9XRUQoZm10LCAuLi4pIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGlzQWx3
YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBTZXJ2aWNlV29ya2VyLCAiJXAgLSBTZXJ2aWNlV29ya2Vy
Q29udGFpbmVyOjoiIGZtdCwgdGhpcywgIyNfX1ZBX0FSR1NfXykKKwogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpTZXJ2aWNlV29ya2VyQ29udGFpbmVyKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIE5hdmlnYXRvckJhc2UmIG5hdmlnYXRvcikK
QEAgLTEyNywxNyArMTMwLDIwIEBAIHZvaWQgU2VydmljZVdvcmtlckNvbnRhaW5lcjo6YWRkUmVn
aXN0cmF0aW9uKGNvbnN0IFN0cmluZyYgcmVsYXRpdmVTY3JpcHRVUkwsIGNvCiAKICAgICBqb2JE
YXRhLnNjcmlwdFVSTCA9IGNvbnRleHQtPmNvbXBsZXRlVVJMKHJlbGF0aXZlU2NyaXB0VVJMKTsK
ICAgICBpZiAoIWpvYkRhdGEuc2NyaXB0VVJMLmlzVmFsaWQoKSkgeworICAgICAgICBDT05UQUlO
RVJfUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCgiYWRkUmVnaXN0cmF0aW9uOiBJbnZhbGlk
IHNjcmlwdFVSTCIpOwogICAgICAgICBwcm9taXNlLT5yZWplY3QoRXhjZXB0aW9uIHsgVHlwZUVy
cm9yLCBBU0NJSUxpdGVyYWwoInNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoKSBtdXN0IGJlIGNhbGxl
ZCB3aXRoIGEgdmFsaWQgcmVsYXRpdmUgc2NyaXB0IFVSTCIpIH0pOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCiAgICAgaWYgKCFTY2hlbWVSZWdpc3RyeTo6Y2FuU2VydmljZVdvcmtlcnNIYW5k
bGVVUkxTY2hlbWUoam9iRGF0YS5zY3JpcHRVUkwucHJvdG9jb2woKS50b1N0cmluZ1dpdGhvdXRD
b3B5aW5nKCkpKSB7CisgICAgICAgIENPTlRBSU5FUl9SRUxFQVNFX0xPR19FUlJPUl9JRl9BTExP
V0VEKCJhZGRSZWdpc3RyYXRpb246IEludmFsaWQgc2NyaXB0VVJMIHNjaGVtZSBpcyBub3QgSFRU
UCBvciBIVFRQUyIpOwogICAgICAgICBwcm9taXNlLT5yZWplY3QoRXhjZXB0aW9uIHsgVHlwZUVy
cm9yLCBBU0NJSUxpdGVyYWwoInNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoKSBtdXN0IGJlIGNhbGxl
ZCB3aXRoIGEgc2NyaXB0IFVSTCB3aG9zZSBwcm90b2NvbCBpcyBlaXRoZXIgSFRUUCBvciBIVFRQ
UyIpIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgU3RyaW5nIHBhdGggPSBqb2JE
YXRhLnNjcmlwdFVSTC5wYXRoKCk7CiAgICAgaWYgKHBhdGguY29udGFpbnNJZ25vcmluZ0FTQ0lJ
Q2FzZSgiJTJmIikgfHwgcGF0aC5jb250YWluc0lnbm9yaW5nQVNDSUlDYXNlKCIlNWMiKSkgewor
ICAgICAgICBDT05UQUlORVJfUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCgiYWRkUmVnaXN0
cmF0aW9uOiBzY3JpcHRVUkwgY29udGFpbnMgaW52YWxpZCBjaGFyYWN0ZXIiKTsKICAgICAgICAg
cHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgQVNDSUlMaXRlcmFsKCJzZXJ2
aWNlV29ya2VyLnJlZ2lzdGVyKCkgbXVzdCBiZSBjYWxsZWQgd2l0aCBhIHNjcmlwdCBVUkwgd2hv
c2UgcGF0aCBkb2VzIG5vdCBjb250YWluICclMmYnIG9yICclNWMnIikgfSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CkBAIC0xNDgsMTYgKzE1NCwyMCBAQCB2b2lkIFNlcnZpY2VXb3JrZXJDb250
YWluZXI6OmFkZFJlZ2lzdHJhdGlvbihjb25zdCBTdHJpbmcmIHJlbGF0aXZlU2NyaXB0VVJMLCBj
bwogICAgICAgICBqb2JEYXRhLnNjb3BlVVJMID0gVVJMKGpvYkRhdGEuc2NyaXB0VVJMLCAiLi8i
KTsKIAogICAgIGlmICgham9iRGF0YS5zY29wZVVSTC5pc051bGwoKSAmJiAhU2NoZW1lUmVnaXN0
cnk6OmNhblNlcnZpY2VXb3JrZXJzSGFuZGxlVVJMU2NoZW1lKGpvYkRhdGEuc2NvcGVVUkwucHJv
dG9jb2woKS50b1N0cmluZ1dpdGhvdXRDb3B5aW5nKCkpKSB7CisgICAgICAgIENPTlRBSU5FUl9S
RUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKCJhZGRSZWdpc3RyYXRpb246IHNjb3BlVVJMIHNj
aGVtZSBpcyBub3QgSFRUUCBvciBIVFRQUyIpOwogICAgICAgICBwcm9taXNlLT5yZWplY3QoRXhj
ZXB0aW9uIHsgVHlwZUVycm9yLCBBU0NJSUxpdGVyYWwoIlNjb3BlIFVSTCBwcm92aWRlZCB0byBz
ZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCkgbXVzdCBiZSBlaXRoZXIgSFRUUCBvciBIVFRQUyIpIH0p
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgcGF0aCA9IGpvYkRhdGEuc2NvcGVVUkwu
cGF0aCgpOwogICAgIGlmIChwYXRoLmNvbnRhaW5zSWdub3JpbmdBU0NJSUNhc2UoIiUyZiIpIHx8
IHBhdGguY29udGFpbnNJZ25vcmluZ0FTQ0lJQ2FzZSgiJTVjIikpIHsKKyAgICAgICAgQ09OVEFJ
TkVSX1JFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoImFkZFJlZ2lzdHJhdGlvbjogc2NvcGVV
UkwgY29udGFpbnMgaW52YWxpZCBjaGFyYWN0ZXIiKTsKICAgICAgICAgcHJvbWlzZS0+cmVqZWN0
KEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgQVNDSUlMaXRlcmFsKCJTY29wZSBVUkwgcHJvdmlkZWQg
dG8gc2VydmljZVdvcmtlci5yZWdpc3RlcigpIGNhbm5vdCBoYXZlIGEgcGF0aCB0aGF0IGNvbnRh
aW5zICclMmYnIG9yICclNWMnIikgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBD
T05UQUlORVJfUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiYWRkUmVnaXN0cmF0aW9uOiBSZWdpc3Rl
cmluZyBzZXJ2aWNlIHdvcmtlci4gSm9iIElEOiAlbGx1Iiwgam9iRGF0YS5pZGVudGlmaWVyKCku
am9iSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKKwogICAgIGpvYkRhdGEuY2xpZW50Q3JlYXRpb25V
UkwgPSBjb250ZXh0LT51cmwoKTsKICAgICBqb2JEYXRhLnRvcE9yaWdpbiA9IFNlY3VyaXR5T3Jp
Z2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKGNvbnRleHQtPnRvcE9yaWdpbigpKTsKICAgICBq
b2JEYXRhLnR5cGUgPSBTZXJ2aWNlV29ya2VySm9iVHlwZTo6UmVnaXN0ZXI7CkBAIC0xODcsNiAr
MTk3LDggQEAgdm9pZCBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpyZW1vdmVSZWdpc3RyYXRpb24o
Y29uc3QgVVJMJiBzY29wZVVSTCwgUmVmPERlZmVycmUKICAgICBqb2JEYXRhLnR5cGUgPSBTZXJ2
aWNlV29ya2VySm9iVHlwZTo6VW5yZWdpc3RlcjsKICAgICBqb2JEYXRhLnNjb3BlVVJMID0gc2Nv
cGVVUkw7CiAKKyAgICBDT05UQUlORVJfUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmVtb3ZlUmVn
aXN0cmF0aW9uOiBVbnJlZ2lzdGVyaW5nIHNlcnZpY2Ugd29ya2VyLiBKb2IgSUQ6ICVsbHUiLCBq
b2JEYXRhLmlkZW50aWZpZXIoKS5qb2JJZGVudGlmaWVyLnRvVUludDY0KCkpOworCiAgICAgc2No
ZWR1bGVKb2IoU2VydmljZVdvcmtlckpvYjo6Y3JlYXRlKCp0aGlzLCBXVEZNb3ZlKHByb21pc2Up
LCBXVEZNb3ZlKGpvYkRhdGEpKSk7CiB9CiAKQEAgLTIxMSw2ICsyMjMsOCBAQCB2b2lkIFNlcnZp
Y2VXb3JrZXJDb250YWluZXI6OnVwZGF0ZVJlZ2lzdHJhdGlvbihjb25zdCBVUkwmIHNjb3BlVVJM
LCBjb25zdCBVUkwmCiAgICAgam9iRGF0YS5zY29wZVVSTCA9IHNjb3BlVVJMOwogICAgIGpvYkRh
dGEuc2NyaXB0VVJMID0gc2NyaXB0VVJMOwogCisgICAgQ09OVEFJTkVSX1JFTEVBU0VfTE9HX0lG
X0FMTE9XRUQoInJlbW92ZVJlZ2lzdHJhdGlvbjogVXBkYXRpbmcgc2VydmljZSB3b3JrZXIuIEpv
YiBJRDogJWxsdSIsIGpvYkRhdGEuaWRlbnRpZmllcigpLmpvYklkZW50aWZpZXIudG9VSW50NjQo
KSk7CisKICAgICBzY2hlZHVsZUpvYihTZXJ2aWNlV29ya2VySm9iOjpjcmVhdGUoKnRoaXMsIFdU
Rk1vdmUocHJvbWlzZSksIFdURk1vdmUoam9iRGF0YSkpKTsKIH0KIApAQCAtMzYwLDYgKzM3NCw4
IEBAIHZvaWQgU2VydmljZVdvcmtlckNvbnRhaW5lcjo6am9iRmFpbGVkV2l0aEV4Y2VwdGlvbihT
ZXJ2aWNlV29ya2VySm9iJiBqb2IsIGNvbnN0CiAgICAgICAgIGpvYkRpZEZpbmlzaChqb2IpOwog
ICAgIH0pOwogCisgICAgQ09OVEFJTkVSX1JFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoImpv
YkZhaWxlZFdpdGhFeGNlcHRpb246IEpvYiAlbGx1IGZhaWxlZCB3aXRoIGVycm9yICVzIiwgam9i
LmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpLCBleGNlcHRpb24ubWVzc2FnZSgpLnV0ZjgoKS5kYXRh
KCkpOworCiAgICAgaWYgKCFqb2IucHJvbWlzZSgpKQogICAgICAgICByZXR1cm47CiAKQEAgLTM5
MSw2ICs0MDcsMTMgQEAgdm9pZCBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpqb2JSZXNvbHZlZFdp
dGhSZWdpc3RyYXRpb24oU2VydmljZVdvcmtlckpvYiYgam9iLAogICAgICAgICBqb2JEaWRGaW5p
c2goam9iKTsKICAgICB9KTsKIAorICAgIGlmIChqb2IuZGF0YSgpLnR5cGUgPT0gU2VydmljZVdv
cmtlckpvYlR5cGU6OlJlZ2lzdGVyKQorICAgICAgICBDT05UQUlORVJfUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRCgiam9iUmVzb2x2ZWRXaXRoUmVnaXN0cmF0aW9uOiBSZWdpc3RyYXRpb24gam9iICVs
bHUgc3VjY2VlZGVkIiwgam9iLmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpKTsKKyAgICBlbHNlIHsK
KyAgICAgICAgQVNTRVJUKGpvYi5kYXRhKCkudHlwZSA9PSBTZXJ2aWNlV29ya2VySm9iVHlwZTo6
VXBkYXRlKTsKKyAgICAgICAgQ09OVEFJTkVSX1JFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImpvYlJl
c29sdmVkV2l0aFJlZ2lzdHJhdGlvbjogVXBkYXRlIGpvYiAlbGx1IHN1Y2NlZWRlZCIsIGpvYi5p
ZGVudGlmaWVyKCkudG9VSW50NjQoKSk7CisgICAgfQorCiAgICAgV1RGOjpGdW5jdGlvbjx2b2lk
KCk+IG5vdGlmeVdoZW5SZXNvbHZlZElmTmVlZGVkID0gW10geyB9OwogICAgIGlmIChzaG91bGRO
b3RpZnlXaGVuUmVzb2x2ZWQgPT0gU2hvdWxkTm90aWZ5V2hlblJlc29sdmVkOjpZZXMpIHsKICAg
ICAgICAgbm90aWZ5V2hlblJlc29sdmVkSWZOZWVkZWQgPSBbY29ubmVjdGlvbiA9IG1fc3dDb25u
ZWN0aW9uLCByZWdpc3RyYXRpb25LZXkgPSBkYXRhLmtleS5pc29sYXRlZENvcHkoKV0oKSBtdXRh
YmxlIHsKQEAgLTQxOCw3ICs0NDEsNyBAQCB2b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6Ompv
YlJlc29sdmVkV2l0aFJlZ2lzdHJhdGlvbihTZXJ2aWNlV29ya2VySm9iJiBqb2IsCiAKICAgICAg
ICAgYXV0byByZWdpc3RyYXRpb24gPSBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uOjpnZXRPckNy
ZWF0ZShjb250ZXh0LCAqdGhpcywgV1RGTW92ZShkYXRhKSk7CiAKLSAgICAgICAgTE9HKFNlcnZp
Y2VXb3JrZXIsICJDb250YWluZXIgJXAgcmVzb2x2ZWQgam9iIHdpdGggcmVnaXN0cmF0aW9uICVw
IiwgdGhpcywgcmVnaXN0cmF0aW9uLnB0cigpKTsKKyAgICAgICAgQ09OVEFJTkVSX1JFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoImpvYlJlc29sdmVkV2l0aFJlZ2lzdHJhdGlvbjogUmVzb2x2aW5nIHBy
b21pc2UgZm9yIGpvYiAlbGx1LiBSZWdpc3RyYXRpb24gSUQ6ICVsbHUiLCBqb2ItPmlkZW50aWZp
ZXIoKS50b1VJbnQ2NCgpLCByZWdpc3RyYXRpb24tPmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpKTsK
IAogICAgICAgICBqb2ItPnByb21pc2UoKS0+cmVzb2x2ZTxJRExJbnRlcmZhY2U8U2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbj4+KFdURk1vdmUocmVnaXN0cmF0aW9uKSk7CiAKQEAgLTQzOCw2ICs0
NjEsOCBAQCB2b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OmpvYlJlc29sdmVkV2l0aFVucmVn
aXN0cmF0aW9uUmVzdWx0KFNlcnZpY2VXb3JrZXJKbwogICAgICAgICBqb2JEaWRGaW5pc2goam9i
KTsKICAgICB9KTsKIAorICAgIENPTlRBSU5FUl9SRUxFQVNFX0xPR19JRl9BTExPV0VEKCJqb2JS
ZXNvbHZlZFdpdGhVbnJlZ2lzdHJhdGlvblJlc3VsdDogVW5yZWdpc3RlciBqb2IgJWxsdSBmaW5p
c2hlZC4gU3VjY2Vzcz8gJWQiLCBqb2IuaWRlbnRpZmllcigpLnRvVUludDY0KCksIHVucmVnaXN0
cmF0aW9uUmVzdWx0KTsKKwogICAgIGF1dG8qIGNvbnRleHQgPSBzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCk7CiAgICAgaWYgKCFjb250ZXh0KSB7CiAgICAgICAgIExPR19FUlJPUigiU2VydmljZVdv
cmtlckNvbnRhaW5lcjo6am9iUmVzb2x2ZWRXaXRoVW5yZWdpc3RyYXRpb25SZXN1bHQgY2FsbGVk
IGJ1dCB0aGUgY29udGFpbmVycyBTY3JpcHRFeGVjdXRpb25Db250ZXh0IGlzIGdvbmUiKTsKQEAg
LTQ1NSw3ICs0ODAsNyBAQCB2b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OnN0YXJ0U2NyaXB0
RmV0Y2hGb3JKb2IoU2VydmljZVdvcmtlckpvYiYgam9iLCBGZXRjaAogICAgIEFTU0VSVChtX2Ny
ZWF0aW9uVGhyZWFkLnB0cigpID09ICZUaHJlYWQ6OmN1cnJlbnQoKSk7CiAjZW5kaWYKIAotICAg
IExPRyhTZXJ2aWNlV29ya2VyLCAiU2V2aWNlV29ya2VyQ29udGFpbmVyICVwIHN0YXJ0aW5nIHNj
cmlwdCBmZXRjaCBmb3Igam9iICVzIiwgdGhpcywgam9iLmlkZW50aWZpZXIoKS5sb2dnaW5nU3Ry
aW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgQ09OVEFJTkVSX1JFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoInN0YXJ0U2NyaXB0RmV0Y2hGb3JKb2I6IFN0YXJ0aW5nIHNjcmlwdCBmZXRjaCBmb3Igam9i
ICVsbHUiLCBqb2IuaWRlbnRpZmllcigpLnRvVUludDY0KCkpOwogCiAgICAgYXV0byogY29udGV4
dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBpZiAoIWNvbnRleHQpIHsKQEAgLTQ3
Niw3ICs1MDEsNyBAQCB2b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OmpvYkZpbmlzaGVkTG9h
ZGluZ1NjcmlwdChTZXJ2aWNlV29ya2VySm9iJiBqb2IsIGNvbgogICAgIEFTU0VSVChtX2NyZWF0
aW9uVGhyZWFkLnB0cigpID09ICZUaHJlYWQ6OmN1cnJlbnQoKSk7CiAjZW5kaWYKIAotICAgIExP
RyhTZXJ2aWNlV29ya2VyLCAiU2V2aWNlV29ya2VyQ29udGFpbmVyICVwIGZpbmlzaGVkIGZldGNo
aW5nIHNjcmlwdCBmb3Igam9iICVzIiwgdGhpcywgam9iLmlkZW50aWZpZXIoKS5sb2dnaW5nU3Ry
aW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgQ09OVEFJTkVSX1JFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoImpvYkZpbmlzaGVkTG9hZGluZ1NjcmlwdDogU3VjY2Vzc2Z1bHkgZmluaXNoZWQgZmV0Y2hp
bmcgc2NyaXB0IGZvciBqb2IgJWxsdSIsIGpvYi5pZGVudGlmaWVyKCkudG9VSW50NjQoKSk7CiAK
ICAgICBjYWxsT25NYWluVGhyZWFkKFtjb25uZWN0aW9uID0gbV9zd0Nvbm5lY3Rpb24sIGpvYkRh
dGFJZGVudGlmaWVyID0gam9iLmRhdGEoKS5pZGVudGlmaWVyKCksIHJlZ2lzdHJhdGlvbktleSA9
IGpvYi5kYXRhKCkucmVnaXN0cmF0aW9uS2V5KCksIHNjcmlwdCA9IHNjcmlwdC5pc29sYXRlZENv
cHkoKSwgY29udGVudFNlY3VyaXR5UG9saWN5ID0gY29udGVudFNlY3VyaXR5UG9saWN5Lmlzb2xh
dGVkQ29weSgpXSB7CiAgICAgICAgIGNvbm5lY3Rpb24tPmZpbmlzaEZldGNoaW5nU2NyaXB0SW5T
ZXJ2ZXIoeyBqb2JEYXRhSWRlbnRpZmllciwgcmVnaXN0cmF0aW9uS2V5LCBzY3JpcHQsIGNvbnRl
bnRTZWN1cml0eVBvbGljeSwgeyB9IH0pOwpAQCAtNDkwLDcgKzUxNSw3IEBAIHZvaWQgU2Vydmlj
ZVdvcmtlckNvbnRhaW5lcjo6am9iRmFpbGVkTG9hZGluZ1NjcmlwdChTZXJ2aWNlV29ya2VySm9i
JiBqb2IsIGNvbnN0CiAjZW5kaWYKICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKGpvYi5wcm9taXNl
KCkgfHwgam9iLmRhdGEoKS50eXBlID09IFNlcnZpY2VXb3JrZXJKb2JUeXBlOjpVcGRhdGUsICJP
bmx5IHNvZnQgdXBkYXRlcyBoYXZlIG5vIHByb21pc2UiKTsKIAotICAgIExPRyhTZXJ2aWNlV29y
a2VyLCAiU2V2aWNlV29ya2VyQ29udGFpbmVyICVwIGZhaWxlZCBmZXRjaGluZyBzY3JpcHQgZm9y
IGpvYiAlcyIsIHRoaXMsIGpvYi5pZGVudGlmaWVyKCkubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5k
YXRhKCkpOworICAgIENPTlRBSU5FUl9SRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKCJqb2JG
aW5pc2hlZExvYWRpbmdTY3JpcHQ6IEZhaWxlZCB0byBmZXRjaCBzY3JpcHQgZm9yIGpvYiAlbGx1
LCBlcnJvcjogJXMiLCBqb2IuaWRlbnRpZmllcigpLnRvVUludDY0KCksIGVycm9yLmxvY2FsaXpl
ZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSk7CiAKICAgICBpZiAoZXhjZXB0aW9uICYmIGpv
Yi5wcm9taXNlKCkpCiAgICAgICAgIGpvYi5wcm9taXNlKCktPnJlamVjdCgqZXhjZXB0aW9uKTsK
QEAgLTU5Nyw2ICs2MjIsMTkgQEAgRG9jdW1lbnRPcldvcmtlcklkZW50aWZpZXIgU2VydmljZVdv
cmtlckNvbnRhaW5lcjo6Y29udGV4dElkZW50aWZpZXIoKQogICAgIHJldHVybiBkb3duY2FzdDxE
b2N1bWVudD4oKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkuaWRlbnRpZmllcigpOwogfQogCiti
b29sIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpIGNv
bnN0Cit7CisgICAgYXV0byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAg
ICBpZiAoIWNvbnRleHQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChpczxEb2N1
bWVudD4oKmNvbnRleHQpKQorICAgICAgICByZXR1cm4gZG93bmNhc3Q8RG9jdW1lbnQ+KCpjb250
ZXh0KS5zZXNzaW9uSUQoKS5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKTsKKworICAgIC8vIEZJ
WE1FOiBObyBsb2dnaW5nIGluc2lkZSBzZXJ2aWNlIHdvcmtlcnMgZm9yIG5vdy4KKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJM
RShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oCmluZGV4IDE0YjUyNmY4Mzc5M2E5MGM3Njhj
OGM1NDk5ZTI1MGMxYmNjYzY1ZDguLmFkMzg1MWJlODA5ZGJjZTc5ZWY0MmIxYjFmNjJjZWRmZGRj
ZDQ4ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyQ29udGFpbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJDb250YWluZXIuaApAQCAtODQsNiArODQsOCBAQCBwdWJsaWM6CiAKICAgICBi
b29sIGlzU3RvcHBlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNTdG9wcGVkOyB9OwogCisgICAgYm9v
bCBpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICB2b2lk
IHNjaGVkdWxlSm9iKFJlZjxTZXJ2aWNlV29ya2VySm9iPiYmKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmll
ci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2JEYXRh
SWRlbnRpZmllci5oCmluZGV4IDM4NDZhYmU4YWY3MDA4NmU5MDRhY2YxNmYyNjcyM2E0ZDE3MDJj
YmUuLjcyNWE4M2FjMjEwYWZmYjEyOWMwZTU4NjE4NmUxOWJlMmQwNzgxNTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50
aWZpZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckpvYkRhdGFJZGVudGlmaWVyLmgKQEAgLTM1LDEyICszNSwxMCBAQCBzdHJ1Y3QgU2VydmljZVdv
cmtlckpvYkRhdGFJZGVudGlmaWVyIHsKICAgICBTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
IGNvbm5lY3Rpb25JZGVudGlmaWVyOwogICAgIFNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyIGpv
YklkZW50aWZpZXI7CiAKLSNpZm5kZWYgTkRFQlVHCiAgICAgU3RyaW5nIGxvZ2dpbmdTdHJpbmco
KSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIGNvbm5lY3Rpb25JZGVudGlmaWVyLmxvZ2dp
bmdTdHJpbmcoKSArICItIiArIGpvYklkZW50aWZpZXIubG9nZ2luZ1N0cmluZygpOwogICAgIH0K
LSNlbmRpZgogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2Rl
ciYpIGNvbnN0OwogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllcj4gZGVjb2RlKERlY29kZXImKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uLmNwcAppbmRleCAwOTNlYTc1ZTliZDYxNThkYzhjZTI0NDI3OTIyNzI1
NDQzOTEwN2ZjLi5mMjY5YjhlNDRhM2E0NmI5OWY5ZmJlNmNhZjI4MGY2YjU1NGYzMGZjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb24uY3BwCkBAIC0zNyw2ICszNyw5IEBACiAjaW5jbHVkZSAiU2Vydmlj
ZVdvcmtlclR5cGVzLmgiCiAjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKIAorI2RlZmlu
ZSBSRUdJU1RSQVRJT05fUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChmbXQsIC4uLikgUkVMRUFTRV9M
T0dfSUYobV9jb250YWluZXItPmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBTZXJ2aWNlV29y
a2VyLCAiJXAgLSBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uOjoiIGZtdCwgdGhpcywgIyNfX1ZB
X0FSR1NfXykKKyNkZWZpbmUgUkVHSVNUUkFUSU9OX1JFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9X
RUQoZm10LCAuLi4pIFJFTEVBU0VfTE9HX0VSUk9SX0lGKG1fY29udGFpbmVyLT5pc0Fsd2F5c09u
TG9nZ2luZ0FsbG93ZWQoKSwgU2VydmljZVdvcmtlciwgIiVwIC0gU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbjo6IiBmbXQsIHRoaXMsICMjX19WQV9BUkdTX18pCisKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogUmVmPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24+IFNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb246OmdldE9yQ3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFJlZjxT
ZXJ2aWNlV29ya2VyQ29udGFpbmVyPiYmIGNvbnRhaW5lciwgU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbkRhdGEmJiBkYXRhKQpAQCAtNjQsNiArNjcsOCBAQCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bgogICAgIGlmIChtX3JlZ2lzdHJhdGlvbkRhdGEuYWN0aXZlV29ya2VyKQogICAgICAgICBtX2Fj
dGl2ZVdvcmtlciA9IFNlcnZpY2VXb3JrZXI6OmdldE9yQ3JlYXRlKGNvbnRleHQsIFdURk1vdmUo
Km1fcmVnaXN0cmF0aW9uRGF0YS5hY3RpdmVXb3JrZXIpKTsKIAorICAgIFJFR0lTVFJBVElPTl9S
RUxFQVNFX0xPR19JRl9BTExPV0VEKCJTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uOiBJRCAlbGx1
LCBpbnN0YWxsaW5nOiAlbGx1LCB3YWl0aW5nOiAlbGx1LCBhY3RpdmU6ICVsbHUiLCBpZGVudGlm
aWVyKCkudG9VSW50NjQoKSwgbV9pbnN0YWxsaW5nV29ya2VyID8gbV9pbnN0YWxsaW5nV29ya2Vy
LT5pZGVudGlmaWVyKCkudG9VSW50NjQoKSA6IDAsIG1fd2FpdGluZ1dvcmtlciA/IG1fd2FpdGlu
Z1dvcmtlci0+aWRlbnRpZmllcigpLnRvVUludDY0KCkgOiAwLCBtX2FjdGl2ZVdvcmtlciA/IG1f
YWN0aXZlV29ya2VyLT5pZGVudGlmaWVyKCkudG9VSW50NjQoKSA6IDApOworCiAgICAgbV9jb250
YWluZXItPmFkZFJlZ2lzdHJhdGlvbigqdGhpcyk7CiAKICAgICByZWxheEFkb3B0aW9uUmVxdWly
ZW1lbnQoKTsKQEAgLTE3MSwxMiArMTc2LDE1IEBAIHZvaWQgU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbjo6dXBkYXRlU3RhdGVGcm9tU2VydmVyKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25TCiB7
CiAgICAgc3dpdGNoIChzdGF0ZSkgewogICAgIGNhc2UgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
blN0YXRlOjpJbnN0YWxsaW5nOgorICAgICAgICBSRUdJU1RSQVRJT05fUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRCgidXBkYXRlU3RhdGVGcm9tU2VydmVyOiBTZXR0aW5nIHJlZ2lzdHJhdGlvbiAlbGx1
IGluc3RhbGxpbmcgd29ya2VyIHRvICVsbHUiLCBpZGVudGlmaWVyKCkudG9VSW50NjQoKSwgc2Vy
dmljZVdvcmtlciA/IHNlcnZpY2VXb3JrZXItPmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpIDogMCk7
CiAgICAgICAgIG1faW5zdGFsbGluZ1dvcmtlciA9IFdURk1vdmUoc2VydmljZVdvcmtlcik7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvblN0YXRlOjpX
YWl0aW5nOgorICAgICAgICBSRUdJU1RSQVRJT05fUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgidXBk
YXRlU3RhdGVGcm9tU2VydmVyOiBTZXR0aW5nIHJlZ2lzdHJhdGlvbiAlbGx1IHdhaXRpbmcgd29y
a2VyIHRvICVsbHUiLCBpZGVudGlmaWVyKCkudG9VSW50NjQoKSwgc2VydmljZVdvcmtlciA/IHNl
cnZpY2VXb3JrZXItPmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpIDogMCk7CiAgICAgICAgIG1fd2Fp
dGluZ1dvcmtlciA9IFdURk1vdmUoc2VydmljZVdvcmtlcik7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvblN0YXRlOjpBY3RpdmU6CisgICAgICAgIFJF
R0lTVFJBVElPTl9SRUxFQVNFX0xPR19JRl9BTExPV0VEKCJ1cGRhdGVTdGF0ZUZyb21TZXJ2ZXI6
IFNldHRpbmcgcmVnaXN0cmF0aW9uICVsbHUgYWN0aXZlIHdvcmtlciB0byAlbGx1IiwgaWRlbnRp
ZmllcigpLnRvVUludDY0KCksIHNlcnZpY2VXb3JrZXIgPyBzZXJ2aWNlV29ya2VyLT5pZGVudGlm
aWVyKCkudG9VSW50NjQoKSA6IDApOwogICAgICAgICBtX2FjdGl2ZVdvcmtlciA9IFdURk1vdmUo
c2VydmljZVdvcmtlcik7CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTE5Miw2ICsyMDAsOCBA
QCB2b2lkIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb246OnNjaGVkdWxlVGFza1RvRmlyZVVwZGF0
ZUZvdW5kRXZlbnQoKQogICAgICAgICBpZiAobV9pc1N0b3BwZWQpCiAgICAgICAgICAgICByZXR1
cm47CiAKKyAgICAgICAgUkVHSVNUUkFUSU9OX1JFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInNjaGVk
dWxlVGFza1RvRmlyZVVwZGF0ZUZvdW5kRXZlbnQ6IEZpcmluZyB1cGRhdGVmb3VuZCBldmVudCBm
b3IgcmVnaXN0cmF0aW9uICVsbHUiLCBpZGVudGlmaWVyKCkudG9VSW50NjQoKSk7CisKICAgICAg
ICAgQVNTRVJUKG1fcGVuZGluZ0FjdGl2aXR5Rm9yRXZlbnREaXNwYXRjaCk7CiAgICAgICAgIGRp
c3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkudXBkYXRlZm91bmRFdmVudCwg
ZmFsc2UsIGZhbHNlKSk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCmluZGV4IDE2MWQxNWIwNjFhNTM2N2JlNDk0ODhh
ZmJjYTMyNGU4MzQzN2M3ZmEuLjYzMmM3YWU3MzgwM2FlYjcxMjU4ZmQ5MTAyYjA0YzU3NjM4NGYx
ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dT
ZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dT
ZXJ2ZXIuY3BwCkBAIC0zMzQsNiArMzM0LDggQEAgdm9pZCBTV1NlcnZlcjo6c2NyaXB0Q29udGV4
dEZhaWxlZFRvU3RhcnQoY29uc3Qgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VySm9iRGEKICAg
ICBpZiAoIWpvYkRhdGFJZGVudGlmaWVyKQogICAgICAgICByZXR1cm47CiAKKyAgICBSRUxFQVNF
X0xPR19FUlJPUihTZXJ2aWNlV29ya2VyLCAiJXAgLSBTV1NlcnZlcjo6c2NyaXB0Q29udGV4dEZh
aWxlZFRvU3RhcnQ6IEZhaWxlZCB0byBzdGFydCBTVyBmb3Igam9iICVzLCBlcnJvcjogJXMiLCB0
aGlzLCBqb2JEYXRhSWRlbnRpZmllci0+bG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIG1l
c3NhZ2UudXRmOCgpLmRhdGEoKSk7CisKICAgICBpZiAoYXV0byogam9iUXVldWUgPSBtX2pvYlF1
ZXVlcy5nZXQod29ya2VyLnJlZ2lzdHJhdGlvbktleSgpKSkKICAgICAgICAgam9iUXVldWUtPnNj
cmlwdENvbnRleHRGYWlsZWRUb1N0YXJ0KCpqb2JEYXRhSWRlbnRpZmllciwgd29ya2VyLmlkZW50
aWZpZXIoKSwgbWVzc2FnZSk7CiB9CkBAIC0zNTIsMTIgKzM1NCwxOSBAQCB2b2lkIFNXU2VydmVy
OjpkaWRGaW5pc2hJbnN0YWxsKGNvbnN0IHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckpvYkRh
dGFJZGVudGlmaQogICAgIGlmICgham9iRGF0YUlkZW50aWZpZXIpCiAgICAgICAgIHJldHVybjsK
IAorICAgIGlmICh3YXNTdWNjZXNzZnVsKQorICAgICAgICBSRUxFQVNFX0xPRyhTZXJ2aWNlV29y
a2VyLCAiJXAgLSBTV1NlcnZlcjo6ZGlkRmluaXNoSW5zdGFsbDogU3VjY2Vzc2Z1bHkgZmluaXNo
ZWQgU1cgaW5zdGFsbCBmb3Igam9iICVzIiwgdGhpcywgam9iRGF0YUlkZW50aWZpZXItPmxvZ2dp
bmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBlbHNlCisgICAgICAgIFJFTEVBU0VfTE9H
X0VSUk9SKFNlcnZpY2VXb3JrZXIsICIlcCAtIFNXU2VydmVyOjpkaWRGaW5pc2hJbnN0YWxsOiBG
YWlsZWQgU1cgaW5zdGFsbCBmb3Igam9iICVzIiwgdGhpcywgam9iRGF0YUlkZW50aWZpZXItPmxv
Z2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKwogICAgIGlmIChhdXRvKiBqb2JRdWV1ZSA9
IG1fam9iUXVldWVzLmdldCh3b3JrZXIucmVnaXN0cmF0aW9uS2V5KCkpKQogICAgICAgICBqb2JR
dWV1ZS0+ZGlkRmluaXNoSW5zdGFsbCgqam9iRGF0YUlkZW50aWZpZXIsIHdvcmtlci5pZGVudGlm
aWVyKCksIHdhc1N1Y2Nlc3NmdWwpOwogfQogCiB2b2lkIFNXU2VydmVyOjpkaWRGaW5pc2hBY3Rp
dmF0aW9uKFNXU2VydmVyV29ya2VyJiB3b3JrZXIpCiB7CisgICAgUkVMRUFTRV9MT0coU2Vydmlj
ZVdvcmtlciwgIiVwIC0gU1dTZXJ2ZXI6OmRpZEZpbmlzaEFjdGl2YXRpb246IEZpbmlzaGVkIGFj
dGl2YXRpb24gZm9yIHNlcnZpY2Ugd29ya2VyICVsbHUiLCB0aGlzLCB3b3JrZXIuaWRlbnRpZmll
cigpLnRvVUludDY0KCkpOworCiAgICAgaWYgKGF1dG8qIHJlZ2lzdHJhdGlvbiA9IGdldFJlZ2lz
dHJhdGlvbih3b3JrZXIucmVnaXN0cmF0aW9uS2V5KCkpKQogICAgICAgICByZWdpc3RyYXRpb24t
PmRpZEZpbmlzaEFjdGl2YXRpb24od29ya2VyLmlkZW50aWZpZXIoKSk7CiB9CkBAIC01NzUsNiAr
NTg0LDggQEAgdm9pZCBTV1NlcnZlcjo6dGVybWluYXRlV29ya2VySW50ZXJuYWwoU1dTZXJ2ZXJX
b3JrZXImIHdvcmtlciwgVGVybWluYXRpb25Nb2RlIG0KICAgICBBU1NFUlQobV9ydW5uaW5nT3JU
ZXJtaW5hdGluZ1dvcmtlcnMuZ2V0KHdvcmtlci5pZGVudGlmaWVyKCkpID09ICZ3b3JrZXIpOwog
ICAgIEFTU0VSVCh3b3JrZXIuaXNSdW5uaW5nKCkpOwogCisgICAgUkVMRUFTRV9MT0coU2Vydmlj
ZVdvcmtlciwgIiVwIC0gU1dTZXJ2ZXI6OnRlcm1pbmF0ZVdvcmtlckludGVybmFsOiBUZXJtaW5h
dGluZyBzZXJ2aWNlIHdvcmtlciAlbGx1IiwgdGhpcywgd29ya2VyLmlkZW50aWZpZXIoKS50b1VJ
bnQ2NCgpKTsKKwogICAgIHdvcmtlci5zZXRTdGF0ZShTV1NlcnZlcldvcmtlcjo6U3RhdGU6OlRl
cm1pbmF0aW5nKTsKIAogICAgIGF1dG8qIGNvbm5lY3Rpb24gPSBTV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb246OmNvbm5lY3Rpb25Gb3JJZGVudGlmaWVyKHdvcmtlci5jb250ZXh0Q29ubmVjdGlv
bklkZW50aWZpZXIoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2Uvc2VydmVyL1NXU2VydmVySm9iUXVldWUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV1NlcnZlckpvYlF1ZXVlLmNwcAppbmRleCBkYjNiODFmZmFkMTE4YWFk
NDAyMjlkMzY5YTliY2NmMmEwODExMzE5Li4wZTE1NTIyZmM4MzQ4Zjk4NzBkNTIwMmVkMjY1YjQz
YzBlMDUwYTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1NXU2VydmVySm9iUXVldWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvU1dTZXJ2ZXJKb2JRdWV1ZS5jcHAKQEAgLTE1OSw2ICsxNTksOCBAQCB2b2lk
IFNXU2VydmVySm9iUXVldWU6OmRpZFJlc29sdmVSZWdpc3RyYXRpb25Qcm9taXNlKCkKICAgICBB
U1NFUlQocmVnaXN0cmF0aW9uKTsKICAgICBBU1NFUlQocmVnaXN0cmF0aW9uLT5pbnN0YWxsaW5n
V29ya2VyKCkpOwogCisgICAgUkVMRUFTRV9MT0coU2VydmljZVdvcmtlciwgIiVwIC0gU1dTZXJ2
ZXJKb2JRdWV1ZTo6ZGlkUmVzb2x2ZVJlZ2lzdHJhdGlvblByb21pc2U6IFJlZ2lzdHJhdGlvbiBJ
RDogJWxsdS4gTm93IHByb2NlZWRpbmcgd2l0aCBpbnN0YWxsIiwgdGhpcywgcmVnaXN0cmF0aW9u
LT5pZGVudGlmaWVyKCkudG9VSW50NjQoKSk7CisKICAgICAvLyBRdWV1ZSBhIHRhc2sgdG8gZmly
ZSBhbiBldmVudCBuYW1lZCB1cGRhdGVmb3VuZCBhdCBhbGwgdGhlIFNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb24gb2JqZWN0cwogICAgIC8vIGZvciBhbGwgdGhlIHNlcnZpY2Ugd29ya2VyIGNsaWVu
dHMgd2hvc2UgY3JlYXRpb24gVVJMIG1hdGNoZXMgcmVnaXN0cmF0aW9uJ3Mgc2NvcGUgdXJsIGFu
ZAogICAgIC8vIGFsbCB0aGUgc2VydmljZSB3b3JrZXJzIHdob3NlIGNvbnRhaW5pbmcgc2Vydmlj
ZSB3b3JrZXIgcmVnaXN0cmF0aW9uIGlzIHJlZ2lzdHJhdGlvbi4KQEAgLTI2Myw2ICsyNjUsNyBA
QCB2b2lkIFNXU2VydmVySm9iUXVldWU6OnJ1blJlZ2lzdGVySm9iKGNvbnN0IFNlcnZpY2VXb3Jr
ZXJKb2JEYXRhJiBqb2IpCiAgICAgICAgIHJlZ2lzdHJhdGlvbi0+c2V0SXNVbmluc3RhbGxpbmco
ZmFsc2UpOwogICAgICAgICBhdXRvKiBuZXdlc3RXb3JrZXIgPSByZWdpc3RyYXRpb24tPmdldE5l
d2VzdFdvcmtlcigpOwogICAgICAgICBpZiAobmV3ZXN0V29ya2VyICYmIGVxdWFsSWdub3JpbmdG
cmFnbWVudElkZW50aWZpZXIoam9iLnNjcmlwdFVSTCwgbmV3ZXN0V29ya2VyLT5zY3JpcHRVUkwo
KSkgJiYgam9iLnJlZ2lzdHJhdGlvbk9wdGlvbnMudXBkYXRlVmlhQ2FjaGUgPT0gcmVnaXN0cmF0
aW9uLT51cGRhdGVWaWFDYWNoZSgpKSB7CisgICAgICAgICAgICBSRUxFQVNFX0xPRyhTZXJ2aWNl
V29ya2VyLCAiJXAgLSBTV1NlcnZlckpvYlF1ZXVlOjpydW5SZWdpc3RlckpvYjogRm91bmQgZGly
ZWN0bHkgcmV1c2FibGUgcmVnaXN0cmF0aW9uICVsbHUgZm9yIGpvYiAlcyAoRE9ORSkiLCB0aGlz
LCByZWdpc3RyYXRpb24tPmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpLCBqb2IuaWRlbnRpZmllcigp
LmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgICAgIG1fc2VydmVyLnJl
c29sdmVSZWdpc3RyYXRpb25Kb2Ioam9iLCByZWdpc3RyYXRpb24tPmRhdGEoKSwgU2hvdWxkTm90
aWZ5V2hlblJlc29sdmVkOjpObyk7CiAgICAgICAgICAgICBmaW5pc2hDdXJyZW50Sm9iKCk7CiAg
ICAgICAgICAgICByZXR1cm47CkBAIC0yNzAsOSArMjczLDEyIEBAIHZvaWQgU1dTZXJ2ZXJKb2JR
dWV1ZTo6cnVuUmVnaXN0ZXJKb2IoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmIGpvYikKICAg
ICAgICAgLy8gVGhpcyBpcyBub3Qgc3BlY2lmaWVkIHlldCAoaHR0cHM6Ly9naXRodWIuY29tL3cz
Yy9TZXJ2aWNlV29ya2VyL2lzc3Vlcy8xMTg5KS4KICAgICAgICAgaWYgKHJlZ2lzdHJhdGlvbi0+
dXBkYXRlVmlhQ2FjaGUoKSAhPSBqb2IucmVnaXN0cmF0aW9uT3B0aW9ucy51cGRhdGVWaWFDYWNo
ZSkKICAgICAgICAgICAgIHJlZ2lzdHJhdGlvbi0+c2V0VXBkYXRlVmlhQ2FjaGUoam9iLnJlZ2lz
dHJhdGlvbk9wdGlvbnMudXBkYXRlVmlhQ2FjaGUpOworICAgICAgICBSRUxFQVNFX0xPRyhTZXJ2
aWNlV29ya2VyLCAiJXAgLSBTV1NlcnZlckpvYlF1ZXVlOjpydW5SZWdpc3RlckpvYjogRm91bmQg
cmVnaXN0cmF0aW9uICVsbHUgZm9yIGpvYiAlcyBidXQgaXQgbmVlZHMgdXBkYXRpbmciLCB0aGlz
LCByZWdpc3RyYXRpb24tPmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpLCBqb2IuaWRlbnRpZmllcigp
LmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICAgICB9IGVsc2UgewogICAgICAgICBh
dXRvIG5ld1JlZ2lzdHJhdGlvbiA9IHN0ZDo6bWFrZV91bmlxdWU8U1dTZXJ2ZXJSZWdpc3RyYXRp
b24+KG1fc2VydmVyLCBtX3JlZ2lzdHJhdGlvbktleSwgam9iLnJlZ2lzdHJhdGlvbk9wdGlvbnMu
dXBkYXRlVmlhQ2FjaGUsIGpvYi5zY29wZVVSTCwgam9iLnNjcmlwdFVSTCk7CiAgICAgICAgIG1f
c2VydmVyLmFkZFJlZ2lzdHJhdGlvbihXVEZNb3ZlKG5ld1JlZ2lzdHJhdGlvbikpOworCisgICAg
ICAgIFJFTEVBU0VfTE9HKFNlcnZpY2VXb3JrZXIsICIlcCAtIFNXU2VydmVySm9iUXVldWU6OnJ1
blJlZ2lzdGVySm9iOiBObyBleGlzdGluZyByZWdpc3RyYXRpb24gZm9yIGpvYiAlcywgY29uc3Ry
dWN0aW5nIGEgbmV3IG9uZS4iLCB0aGlzLCBqb2IuaWRlbnRpZmllcigpLmxvZ2dpbmdTdHJpbmco
KS51dGY4KCkuZGF0YSgpKTsKICAgICB9CiAKICAgICBydW5VcGRhdGVKb2Ioam9iKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1Nl
cnZlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKaW5kZXggMThkODQxZDQ2ZmIzNzA4YmFk
ZGYzZmUyMDMwYzA5M2FlMzkxNWNiOC4uZDFkMTE1OWM2MWMyMTBkY2YwM2ExZGY3OTg5NmJhZjFj
ODNkNTU3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TdG9y
YWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKQEAgLTU2
LDYgKzU2LDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCisjZGVmaW5lIFNXU0VSVkVSQ09OTkVDVElPTl9SRUxFQVNFX0xPR19JRl9BTExPV0VEKGZt
dCwgLi4uKSBSRUxFQVNFX0xPR19JRihtX3Nlc3Npb25JRC5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93
ZWQoKSwgU2VydmljZVdvcmtlciwgIiVwIC0gV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjoiIGZtdCwg
dGhpcywgIyNfX1ZBX0FSR1NfXykKKyNkZWZpbmUgU1dTRVJWRVJDT05ORUNUSU9OX1JFTEVBU0Vf
TE9HX0VSUk9SX0lGX0FMTE9XRUQoZm10LCAuLi4pIFJFTEVBU0VfTE9HX0VSUk9SX0lGKG1fc2Vz
c2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBTZXJ2aWNlV29ya2VyLCAiJXAgLSBX
ZWJTV1NlcnZlckNvbm5lY3Rpb246OiIgZm10LCB0aGlzLCAjI19fVkFfQVJHU19fKQorCiBXZWJT
V1NlcnZlckNvbm5lY3Rpb246OldlYlNXU2VydmVyQ29ubmVjdGlvbihTV1NlcnZlciYgc2VydmVy
LCBJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAg
OiBTV1NlcnZlcjo6Q29ubmVjdGlvbihzZXJ2ZXIpCiAgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9u
SUQpCkBAIC0xMzAsNiArMTMzLDcgQEAgdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnN0YXJ0
RmV0Y2godWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyUmUKIHsKICAgICBh
dXRvKiB3b3JrZXIgPSBzZXJ2ZXIoKS5hY3RpdmVXb3JrZXJGcm9tUmVnaXN0cmF0aW9uSUQoc2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIpOwogICAgIGlmICghd29ya2VyKSB7Cisg
ICAgICAgIFNXU0VSVkVSQ09OTkVDVElPTl9SRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKCJz
dGFydEZldGNoOiBmZXRjaElkZW50aWZpZXI6ICVsbHUgLT4gRGlkTm90SGFuZGxlIGJlY2F1c2Ug
bm8gYWN0aXZlIHdvcmtlciIsIGZldGNoSWRlbnRpZmllcik7CiAgICAgICAgIG1fY29udGVudENv
bm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6RGlkTm90
SGFuZGxlIHsgfSwgZmV0Y2hJZGVudGlmaWVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAg
LTE0MCw2ICsxNDQsNyBAQCB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6c3RhcnRGZXRjaCh1
aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJSZQogICAgICAgICAgICAgcmV0
dXJuOwogCiAgICAgICAgIGlmICghc3VjY2VzcykgeworICAgICAgICAgICAgU1dTRVJWRVJDT05O
RUNUSU9OX1JFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoInN0YXJ0RmV0Y2g6IGZldGNoSWRl
bnRpZmllcjogJWxsdSAtPiBEaWROb3RIYW5kbGUgYmVjYXVzZSB3b3JrZXIgZGlkIG5vdCBiZWNv
bWUgYWN0aXZhdGVkIiwgZmV0Y2hJZGVudGlmaWVyKTsKICAgICAgICAgICAgIG1fY29udGVudENv
bm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6RGlkTm90
SGFuZGxlIHsgfSwgZmV0Y2hJZGVudGlmaWVyKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQpAQCAtMTQ4LDEwICsxNTMsMTMgQEAgdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnN0
YXJ0RmV0Y2godWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyUmUKICAgICAg
ICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAg
ICAgICBpZiAoc3VjY2VzcykKKyAgICAgICAgICAgIGlmIChzdWNjZXNzKSB7CisgICAgICAgICAg
ICAgICAgU1dTRVJWRVJDT05ORUNUSU9OX1JFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0RmV0
Y2g6IFN0YXJ0aW5nIGZldGNoICVsbHUgdmlhIHNlcnZpY2Ugd29ya2VyICVsbHUiLCBmZXRjaElk
ZW50aWZpZXIsIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLnRvVUludDY0KCkpOwogICAgICAgICAg
ICAgICAgIHNlbmRUb0NvbnRleHRQcm9jZXNzKGNvbnRleHRDb25uZWN0aW9uLCBNZXNzYWdlczo6
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OlN0YXJ0RmV0Y2ggeyBpZGVudGlmaWVyKCks
IGZldGNoSWRlbnRpZmllciwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIHJlcXVlc3QsIG9wdGlv
bnMsIGZvcm1EYXRhLCByZWZlcnJlciB9KTsKLSAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgU1dTRVJWRVJDT05ORUNUSU9OX1JFTEVBU0VfTE9H
X0VSUk9SX0lGX0FMTE9XRUQoInN0YXJ0RmV0Y2g6IGZldGNoSWRlbnRpZmllcjogJWxsdSAtPiBE
aWROb3RIYW5kbGUgYmVjYXVzZSBmYWlsZWQgdG8gcnVuIHNlcnZpY2Ugd29ya2VyIiwgZmV0Y2hJ
ZGVudGlmaWVyKTsKICAgICAgICAgICAgICAgICBtX2NvbnRlbnRDb25uZWN0aW9uLT5zZW5kKE1l
c3NhZ2VzOjpTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OkRpZE5vdEhhbmRsZSB7IH0sIGZldGNo
SWRlbnRpZmllcik7CisgICAgICAgICAgICB9CiAgICAgICAgIH0pOwogICAgIH07CiAKQEAgLTIw
MSwxNiArMjA5LDE5IEBAIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpkaWRSZWNlaXZlRmV0
Y2hGb3JtRGF0YSh1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIGNvCiAKIHZvaWQgV2ViU1dTZXJ2
ZXJDb25uZWN0aW9uOjpkaWRGaW5pc2hGZXRjaCh1aW50NjRfdCBmZXRjaElkZW50aWZpZXIpCiB7
CisgICAgU1dTRVJWRVJDT05ORUNUSU9OX1JFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZEZpbmlz
aEZldGNoOiBmZXRjaElkZW50aWZpZXI6ICVsbHUiLCBmZXRjaElkZW50aWZpZXIpOwogICAgIG1f
Y29udGVudENvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJDbGllbnRGZXRj
aDo6RGlkRmluaXNoIHsgfSwgZmV0Y2hJZGVudGlmaWVyKTsKIH0KIAogdm9pZCBXZWJTV1NlcnZl
ckNvbm5lY3Rpb246OmRpZEZhaWxGZXRjaCh1aW50NjRfdCBmZXRjaElkZW50aWZpZXIpCiB7Cisg
ICAgU1dTRVJWRVJDT05ORUNUSU9OX1JFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoImRpZEZh
aWxGZXRjaDogZmV0Y2hJZGVudGlmaWVyOiAlbGx1IiwgZmV0Y2hJZGVudGlmaWVyKTsKICAgICBt
X2NvbnRlbnRDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyQ2xpZW50RmV0
Y2g6OkRpZEZhaWwgeyB9LCBmZXRjaElkZW50aWZpZXIpOwogfQogCiB2b2lkIFdlYlNXU2VydmVy
Q29ubmVjdGlvbjo6ZGlkTm90SGFuZGxlRmV0Y2godWludDY0X3QgZmV0Y2hJZGVudGlmaWVyKQog
eworICAgIFNXU0VSVkVSQ09OTkVDVElPTl9SRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWROb3RI
YW5kbGVGZXRjaDogZmV0Y2hJZGVudGlmaWVyOiAlbGx1IiwgZmV0Y2hJZGVudGlmaWVyKTsKICAg
ICBtX2NvbnRlbnRDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyQ2xpZW50
RmV0Y2g6OkRpZE5vdEhhbmRsZSB7IH0sIGZldGNoSWRlbnRpZmllcik7CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>