<?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>223106</bug_id>
          
          <creation_ts>2021-03-11 19:35:34 -0800</creation_ts>
          <short_desc>Reduce maximum HashTable entry size to 400 bytes</short_desc>
          <delta_ts>2021-03-12 10:20:34 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1738741</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-03-11 19:35:34 -0800</bug_when>
    <thetext>Reduce maximum HashTable entry size to 400 bytes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738742</commentid>
    <comment_count>1</comment_count>
      <attachid>423008</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-03-11 19:36:34 -0800</bug_when>
    <thetext>Created attachment 423008
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738936</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-12 10:19:32 -0800</bug_when>
    <thetext>Committed r274362: &lt;https://commits.webkit.org/r274362&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 423008.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738937</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-12 10:20:34 -0800</bug_when>
    <thetext>&lt;rdar://problem/75367064&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423008</attachid>
            <date>2021-03-11 19:36:34 -0800</date>
            <delta_ts>2021-03-12 10:19:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223106-20210311193633.patch</filename>
            <type>text/plain</type>
            <size>41023</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGJhMmM5MTVmMmZhOGM3MWRmNjA4MjNj
NTFjOTg3ZmQ3MGM1OTIxNGQuLmE2MTMyMWYxNzI4MTA3ZThjMTlhYzIxMTBmNDg1MWVlNDZkOGNm
YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDMtMTEgIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZWR1Y2UgbWF4aW11bSBIYXNoVGFi
bGUgZW50cnkgc2l6ZSB0byA0MDAgYnl0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyMzEwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogd3RmL0hhc2hUYWJsZS5oOgorICAgICAgICAoV1RGOjpLZXlU
cmFpdHM+OjppbmxpbmVMb29rdXApOgorCiAyMDIxLTAzLTExICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CiAKICAgICAgICAgSW50cm9kdWNlIFdvcmtRdWV1ZTo6bWFpbigpIHRvIGdl
dCB0aGUgbWFpbiB0aHJlYWQncyB3b3JrIHF1ZXVlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjBkM2JlMmY4NTJm
OTdkNDlmZmFkN2QxZTkwYTk5ZmU5MDMyMDcwNy4uNmI0OGU3ZTcxMTFhMDQzODBiZDhlZjIwNWY5
OTJlNDU1NGU3ZmIwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIxLTAzLTExICBB
bGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVk
dWNlIG1heGltdW0gSGFzaFRhYmxlIGVudHJ5IHNpemUgdG8gNDAwIGJ5dGVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjMxMDYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHNob3VsZCByZWR1Y2Ug
bWVtb3J5IHVzZS4KKworICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmg6
CisKIDIwMjEtMDMtMTEgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAg
IFtCaWdTdXIgd2sxIGFybTY0XSBwbGF0Zm9ybS9tYWMvZmFzdC9vYmpjL2xvbmdsb25nVGVzdC5o
dG1sIGlzIGEgY29uc2lzdGVudCBmYWlsdXJlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA2ZmVkMTE3NzRkYjkwNjFj
NDhhMjcxMzI0YmVmMzUwYjE1NWEyYWQyLi4wZjg3NzAwYzUzMjUxY2M3OGE4YWIzNjIyN2MyZmI5
MjU2MDdkOTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDIxLTAzLTExICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVkdWNlIG1h
eGltdW0gSGFzaFRhYmxlIGVudHJ5IHNpemUgdG8gNDAwIGJ5dGVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjMxMDYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZp
ZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cG9wdWxhdGVGcm9tTWVt
b3J5U3RvcmUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VM
b2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6cHJ1bmVSZXNv
dXJjZXMpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3Rv
cmU6OmFnZ3JlZ2F0ZWRUaGlyZFBhcnR5RGF0YSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJl
c291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6cmVjdXJzaXZlbHlHZXRBbGxEb21haW5z
VGhhdEhhdmVSZWRpcmVjdGVkVG9UaGlzRG9tYWluIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
UmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjptYXJrQXNQcmV2YWxlbnRJZkhhc1Jl
ZGlyZWN0ZWRUb1ByZXZhbGVudCk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRp
c3RpY3NNZW1vcnlTdG9yZTo6Y2xhc3NpZnlQcmV2YWxlbnRSZXNvdXJjZXMpOgorICAgICAgICAo
V2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6Omhhc0hhZFVzZXJJbnRl
cmFjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlT
dG9yZTo6c2V0UHJldmFsZW50UmVzb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OmR1bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKToKKyAg
ICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjppc1ByZXZh
bGVudFJlc291cmNlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlz
dGljc01lbW9yeVN0b3JlOjppc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZSBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6aXNSZWdpc3RlcmVk
QXNTdWJyZXNvdXJjZVVuZGVyIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2Fk
U3RhdGlzdGljc01lbW9yeVN0b3JlOjppc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6Omlz
UmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlc291
cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6aXNHcmFuZGZhdGhlcmVkIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjplbnN1cmVS
ZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbik6CisgICAgICAgIChXZWJLaXQ6
OlJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6Y3JlYXRlRW5jb2RlckZyb21EYXRh
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0
b3JlOjptZXJnZVN0YXRpc3RpY3MpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzTWVtb3J5U3RvcmU6OnVwZGF0ZUNvb2tpZUJsb2NraW5nKToKKyAgICAgICAgKFdlYktp
dDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpwcm9jZXNzU3RhdGlzdGljcyBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9y
ZTo6cmVnaXN0cmFibGVEb21haW5zVG9EZWxldGVPclJlc3RyaWN0V2Vic2l0ZURhdGFGb3IpOgor
ICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OnBydW5l
U3RhdGlzdGljc0lmTmVlZGVkKToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlz
dGljc01lbW9yeVN0b3JlOjpyZW1vdmVEYXRhRm9yRG9tYWluKToKKyAgICAgICAgKFdlYktpdDo6
UmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjppbnNlcnRFeHBpcmVkU3RhdGlzdGlj
Rm9yVGVzdGluZyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaDoKKyAgICAgICAgKiBTaGFyZWQvQXV0aGVudGlj
YXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXV0aGVu
dGljYXRpb25NYW5hZ2VyOjphZGRDaGFsbGVuZ2VUb0NoYWxsZW5nZU1hcCk6CisgICAgICAgIChX
ZWJLaXQ6OkF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6c2hvdWxkQ29hbGVzY2VDaGFsbGVuZ2UgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpBdXRoZW50aWNhdGlvbk1hbmFnZXI6OmNvYWxlc2NlQ2hh
bGxlbmdlc01hdGNoaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRpb25N
YW5hZ2VyOjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOgorICAgICAgICAoV2Vi
S2l0OjpBdXRoZW50aWNhdGlvbk1hbmFnZXI6OmNvbXBsZXRlQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UpOgorICAgICAgICAqIFNoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFn
ZXIuaDoKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRpb25NYW5hZ2VyOjpDaGFsbGVuZ2U6
OkNoYWxsZW5nZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJSZXNv
dXJjZUxvYWRPYnNlcnZlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZE9i
c2VydmVyOjplbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZE9ic2VydmVyOjpzdGF0aXN0aWNzRm9yVVJM
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnRha2VTdGF0aXN0
aWNzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9h
ZE9ic2VydmVyLmg6CisKIDIwMjEtMDMtMTEgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBs
ZS5jb20+CiAKICAgICAgICAgW2lPUywgbWFjT1NdIFJlLWFsbG93IFdlYkNvbnRlbnQgc2FuZGJv
eCBwZXJtaXNzaW9ucyBmb3Igc3BlY2lmaWMgL2V0YyBmaWxlcyAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL0hhc2hUYWJsZS5oIGIvU291cmNlL1dURi93dGYvSGFzaFRhYmxlLmgKaW5kZXgg
MzQ5ZmU3Njg1Yjg3ZjBmNTg5YWRhYTJiNTdlNWI4NGVkMzM2MWJhOS4uYjZhODg3NTQwYWJhYWZl
YTNkZWY5NDdjNDAzNTg1M2Q4NDYzNTJlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvSGFz
aFRhYmxlLmgKKysrIGIvU291cmNlL1dURi93dGYvSGFzaFRhYmxlLmgKQEAgLTY2NSw3ICs2NjUs
NyBAQCBERUNMQVJFX0FMTE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJRklFUihIYXNoVGFibGUpOwog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIEhhc2hUcmFuc2xhdG9yLCB0eXBlbmFtZSBUPgogICAgIEFM
V0FZU19JTkxJTkUgYXV0byBIYXNoVGFibGU8S2V5LCBWYWx1ZSwgRXh0cmFjdG9yLCBIYXNoRnVu
Y3Rpb25zLCBUcmFpdHMsIEtleVRyYWl0cz46OmlubGluZUxvb2t1cChjb25zdCBUJiBrZXkpIC0+
IFZhbHVlVHlwZSoKICAgICB7Ci0gICAgICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKEtleSkgKyBz
aXplb2YoVmFsdWUpIDwgNTAwLCAiWW91ciBIYXNoVGFibGUgdHlwZXMgYXJlIHRvbyBiaWcgdG8g
ZWZmaWNpZW50bHkgbW92ZSB3aGVuIHJlaGFzaGluZy4gIENvbnNpZGVyIHVzaW5nIHN0ZDo6dW5p
cXVlX3B0ciBpbnN0ZWFkIik7CisgICAgICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKEtleSkgKyBz
aXplb2YoVmFsdWUpIDwgNDAwLCAiWW91ciBIYXNoVGFibGUgdHlwZXMgYXJlIHRvbyBiaWcgdG8g
ZWZmaWNpZW50bHkgbW92ZSB3aGVuIHJlaGFzaGluZy4gIENvbnNpZGVyIHVzaW5nIHN0ZDo6dW5p
cXVlX3B0ciBpbnN0ZWFkIik7CiAKICAgICAgICAgY2hlY2tLZXk8SGFzaFRyYW5zbGF0b3I+KGtl
eSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTdGF0
aXN0aWNzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5o
CmluZGV4IGVjMDNjMDVmMTNjN2ZmYTY4YWE2NzhkNmY3ZmIxOWVjMzljNDczYWMuLmE5YjU4Mjg3
M2FlNDU1OTE3MzdlODA2ODkyNGNkYWY0NWQ0MWNmODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuaApAQCAtNDEsNiArNDEsNyBAQCBjbGFzcyBL
ZXllZERlY29kZXI7CiBjbGFzcyBLZXllZEVuY29kZXI7CiAKIHN0cnVjdCBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzIHsKKyAgICBXVEZfTUFLRV9TVFJVQ1RfRkFTVF9BTExPQ0FURUQ7CiAgICAgZXhw
bGljaXQgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9t
YWluKQogICAgICAgICA6IHJlZ2lzdHJhYmxlRG9tYWluIHsgZG9tYWluIH0KICAgICB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcApp
bmRleCA5YTkxOTQ3NzQzNzExNjE3NzI1YWNiNjliNWY2Nzk4YTE5NzhiNjJjLi42NGQ0NmY5MTRi
MzM0YmM3ZjliMzYwOGUxZWIwZThlZWRiMjJkYTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9S
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKQEAgLTk0Miw4ICs5NDIsOCBA
QCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwb3B1bGF0ZUZyb21N
ZW1vcnlTdG9yZShjb25zdCBSZXNvdXJjZQogICAgICAgICByZXR1cm47CiAKICAgICBhdXRvJiBz
dGF0aXN0aWNzTWFwID0gbWVtb3J5U3RvcmUuZGF0YSgpOwotICAgIGZvciAoY29uc3QgYXV0byYg
c3RhdGlzdGljIDogc3RhdGlzdGljc01hcCkgewotICAgICAgICBhdXRvIHJlc3VsdCA9IGluc2Vy
dE9ic2VydmVkRG9tYWluKHN0YXRpc3RpYy52YWx1ZSk7CisgICAgZm9yIChjb25zdCBhdXRvJiBz
dGF0aXN0aWMgOiBzdGF0aXN0aWNzTWFwLnZhbHVlcygpKSB7CisgICAgICAgIGF1dG8gcmVzdWx0
ID0gaW5zZXJ0T2JzZXJ2ZWREb21haW4oKnN0YXRpc3RpYyk7CiAgICAgICAgIGlmICghcmVzdWx0
KSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklE
LCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cG9wdWxhdGVGcm9t
TWVtb3J5U3RvcmUgaW5zZXJ0T2JzZXJ2ZWREb21haW4gZmFpbGVkIHRvIGNvbXBsZXRlLCBlcnJv
ciBtZXNzYWdlOiAle3ByaXZhdGV9cyIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkp
OwogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC05NTMsOCArOTUzLDggQEAg
dm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cG9wdWxhdGVGcm9tTWVt
b3J5U3RvcmUoY29uc3QgUmVzb3VyY2UKIAogICAgIC8vIE1ha2UgYSBzZXBhcmF0ZSBwYXNzIGZv
ciBpbnRlci1kb21haW4gcmVsYXRpb25zaGlwcyBzbyB3ZQogICAgIC8vIGNhbiByZWZlciB0byB0
aGUgT2JzZXJ2ZWREb21haW4gdGFibGUgZW50cmllcwotICAgIGZvciAoYXV0byYgc3RhdGlzdGlj
IDogc3RhdGlzdGljc01hcCkKLSAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwcyhzdGF0
aXN0aWMudmFsdWUpOworICAgIGZvciAoYXV0byYgc3RhdGlzdGljIDogc3RhdGlzdGljc01hcC52
YWx1ZXMoKSkKKyAgICAgICAgaW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwcygqc3RhdGlzdGljKTsK
IH0KIAogdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bWVyZ2UoV2Vi
Q29yZTo6U1FMaXRlU3RhdGVtZW50KiBjdXJyZW50LCBjb25zdCBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzJiBvdGhlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xh
c3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1v
cnlTdG9yZS5jcHAKaW5kZXggNDVjNTNmOGFlODM4NjlkN2QwNTNlZGZhZTdhMjc4OGQ2MTc4NGZm
NS4uZTM0NzdlYzNkNDEyYTUwYzE3OWJkMjdmOGVmZmIwOTc0OTE4Y2JlZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRp
c3RpY3NNZW1vcnlTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9D
bGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5jcHAKQEAgLTU3LDcg
KzU3LDcgQEAgc3RydWN0IFN0YXRpc3RpY3NMYXN0U2VlbiB7CiAgICAgV2FsbFRpbWUgbGFzdFNl
ZW47CiB9OwogCi1zdGF0aWMgdm9pZCBwcnVuZVJlc291cmNlcyhIYXNoTWFwPFJlZ2lzdHJhYmxl
RG9tYWluLCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzPiYgc3RhdGlzdGljc01hcCwgVmVjdG9yPFN0
YXRpc3RpY3NMYXN0U2Vlbj4mIHN0YXRpc3RpY3NUb1BydW5lLCBzaXplX3QmIG51bWJlck9mRW50
cmllc1RvUHJ1bmUpCitzdGF0aWMgdm9pZCBwcnVuZVJlc291cmNlcyhIYXNoTWFwPFJlZ2lzdHJh
YmxlRG9tYWluLCBzdGQ6OnVuaXF1ZV9wdHI8UmVzb3VyY2VMb2FkU3RhdGlzdGljcz4+JiBzdGF0
aXN0aWNzTWFwLCBWZWN0b3I8U3RhdGlzdGljc0xhc3RTZWVuPiYgc3RhdGlzdGljc1RvUHJ1bmUs
IHNpemVfdCYgbnVtYmVyT2ZFbnRyaWVzVG9QcnVuZSkKIHsKICAgICBpZiAoc3RhdGlzdGljc1Rv
UHJ1bmUuc2l6ZSgpID4gbnVtYmVyT2ZFbnRyaWVzVG9QcnVuZSkgewogICAgICAgICBzdGQ6OnNv
cnQoc3RhdGlzdGljc1RvUHJ1bmUuYmVnaW4oKSwgc3RhdGlzdGljc1RvUHJ1bmUuZW5kKCksIFtd
KGNvbnN0IFN0YXRpc3RpY3NMYXN0U2VlbiYgYSwgY29uc3QgU3RhdGlzdGljc0xhc3RTZWVuJiBi
KSB7CkBAIC0xMTUsOSArMTE1LDkgQEAgVmVjdG9yPFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6VGhpcmRQYXJ0eURhdGE+IFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW0KICAgICBBU1NF
UlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAgIFZlY3RvcjxXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmU6OlRoaXJkUGFydHlEYXRhPiB0aGlyZFBhcnR5RGF0YUxpc3Q7Ci0gICAgZm9y
IChhdXRvJiBzdGF0aXN0aWMgOiBtX3Jlc291cmNlU3RhdGlzdGljc01hcC52YWx1ZXMoKSkgewot
ICAgICAgICBpZiAoaGFzQmVlblRoaXJkUGFydHkoc3RhdGlzdGljKSAmJiAodGhpcmRQYXJ0eUNv
b2tpZUJsb2NraW5nTW9kZSgpID09IFRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGU6OkFsbCB8
fCBzdGF0aXN0aWMuaXNQcmV2YWxlbnRSZXNvdXJjZSkpCi0gICAgICAgICAgICB0aGlyZFBhcnR5
RGF0YUxpc3QuYXBwZW5kKFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6VGhpcmRQYXJ0
eURhdGEgeyBzdGF0aXN0aWMucmVnaXN0cmFibGVEb21haW4sIGdldFRoaXJkUGFydHlEYXRhRm9y
U3BlY2lmaWNGaXJzdFBhcnR5RG9tYWlucyhzdGF0aXN0aWMpIH0pOworICAgIGZvciAoYXV0byYg
c3RhdGlzdGljcyA6IG1fcmVzb3VyY2VTdGF0aXN0aWNzTWFwLnZhbHVlcygpKSB7CisgICAgICAg
IGlmIChoYXNCZWVuVGhpcmRQYXJ0eSgqc3RhdGlzdGljcykgJiYgKHRoaXJkUGFydHlDb29raWVC
bG9ja2luZ01vZGUoKSA9PSBUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlOjpBbGwgfHwgc3Rh
dGlzdGljcy0+aXNQcmV2YWxlbnRSZXNvdXJjZSkpCisgICAgICAgICAgICB0aGlyZFBhcnR5RGF0
YUxpc3QuYXBwZW5kKFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6VGhpcmRQYXJ0eURh
dGEgeyBzdGF0aXN0aWNzLT5yZWdpc3RyYWJsZURvbWFpbiwgZ2V0VGhpcmRQYXJ0eURhdGFGb3JT
cGVjaWZpY0ZpcnN0UGFydHlEb21haW5zKCpzdGF0aXN0aWNzKSB9KTsKICAgICB9CiAgICAgc3Rk
Ojpzb3J0KHRoaXJkUGFydHlEYXRhTGlzdC5yYmVnaW4oKSwgdGhpcmRQYXJ0eURhdGFMaXN0LnJl
bmQoKSk7CiAgICAgcmV0dXJuIHRoaXJkUGFydHlEYXRhTGlzdDsKQEAgLTE0OCwxOCArMTQ4LDE4
IEBAIHVuc2lnbmVkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6cmVjdXJzaXZl
bHlHZXRBbGxEb21haW5zVGhhdEhhdmVSZWRpCiAgICAgbnVtYmVyT2ZSZWN1cnNpdmVDYWxscysr
OwogCiAgICAgZm9yIChhdXRvJiBzdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0RnJvbURvbWFpbiA6
IHJlc291cmNlU3RhdGlzdGljLnN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzRnJvbSkgewotICAg
ICAgICBhdXRvIG1hcEVudHJ5ID0gbV9yZXNvdXJjZVN0YXRpc3RpY3NNYXAuZmluZChSZWdpc3Ry
YWJsZURvbWFpbiB7IHN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RGcm9tRG9tYWluIH0pOwotICAg
ICAgICBpZiAobWFwRW50cnkgPT0gbV9yZXNvdXJjZVN0YXRpc3RpY3NNYXAuZW5kKCkgfHwgbWFw
RW50cnktPnZhbHVlLmlzUHJldmFsZW50UmVzb3VyY2UpCisgICAgICAgIGF1dG8qIHN0YXRpc3Rp
Y3MgPSBtX3Jlc291cmNlU3RhdGlzdGljc01hcC5nZXQoUmVnaXN0cmFibGVEb21haW4geyBzdWJy
ZXNvdXJjZVVuaXF1ZVJlZGlyZWN0RnJvbURvbWFpbiB9KTsKKyAgICAgICAgaWYgKCFzdGF0aXN0
aWNzIHx8IHN0YXRpc3RpY3MtPmlzUHJldmFsZW50UmVzb3VyY2UpCiAgICAgICAgICAgICBjb250
aW51ZTsKLSAgICAgICAgaWYgKGRvbWFpbnNUaGF0SGF2ZVJlZGlyZWN0ZWRUby5hZGQobWFwRW50
cnktPnZhbHVlLnJlZ2lzdHJhYmxlRG9tYWluKS5pc05ld0VudHJ5KQotICAgICAgICAgICAgbnVt
YmVyT2ZSZWN1cnNpdmVDYWxscyA9IHJlY3Vyc2l2ZWx5R2V0QWxsRG9tYWluc1RoYXRIYXZlUmVk
aXJlY3RlZFRvVGhpc0RvbWFpbihtYXBFbnRyeS0+dmFsdWUsIGRvbWFpbnNUaGF0SGF2ZVJlZGly
ZWN0ZWRUbywgbnVtYmVyT2ZSZWN1cnNpdmVDYWxscyk7CisgICAgICAgIGlmIChkb21haW5zVGhh
dEhhdmVSZWRpcmVjdGVkVG8uYWRkKHN0YXRpc3RpY3MtPnJlZ2lzdHJhYmxlRG9tYWluKS5pc05l
d0VudHJ5KQorICAgICAgICAgICAgbnVtYmVyT2ZSZWN1cnNpdmVDYWxscyA9IHJlY3Vyc2l2ZWx5
R2V0QWxsRG9tYWluc1RoYXRIYXZlUmVkaXJlY3RlZFRvVGhpc0RvbWFpbigqc3RhdGlzdGljcywg
ZG9tYWluc1RoYXRIYXZlUmVkaXJlY3RlZFRvLCBudW1iZXJPZlJlY3Vyc2l2ZUNhbGxzKTsKICAg
ICB9CiAgICAgZm9yIChhdXRvJiB0b3BGcmFtZVVuaXF1ZVJlZGlyZWN0RnJvbURvbWFpbiA6IHJl
c291cmNlU3RhdGlzdGljLnRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbSkgewotICAgICAgICBh
dXRvIG1hcEVudHJ5ID0gbV9yZXNvdXJjZVN0YXRpc3RpY3NNYXAuZmluZChSZWdpc3RyYWJsZURv
bWFpbiB7IHRvcEZyYW1lVW5pcXVlUmVkaXJlY3RGcm9tRG9tYWluIH0pOwotICAgICAgICBpZiAo
bWFwRW50cnkgPT0gbV9yZXNvdXJjZVN0YXRpc3RpY3NNYXAuZW5kKCkgfHwgbWFwRW50cnktPnZh
bHVlLmlzUHJldmFsZW50UmVzb3VyY2UpCisgICAgICAgIGF1dG8qIHN0YXRpc3RpY3MgPSBtX3Jl
c291cmNlU3RhdGlzdGljc01hcC5nZXQoUmVnaXN0cmFibGVEb21haW4geyB0b3BGcmFtZVVuaXF1
ZVJlZGlyZWN0RnJvbURvbWFpbiB9KTsKKyAgICAgICAgaWYgKCFzdGF0aXN0aWNzIHx8IHN0YXRp
c3RpY3MtPmlzUHJldmFsZW50UmVzb3VyY2UpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAg
ICAgaWYgKGRvbWFpbnNUaGF0SGF2ZVJlZGlyZWN0ZWRUby5hZGQobWFwRW50cnktPnZhbHVlLnJl
Z2lzdHJhYmxlRG9tYWluKS5pc05ld0VudHJ5KQotICAgICAgICAgICAgbnVtYmVyT2ZSZWN1cnNp
dmVDYWxscyA9IHJlY3Vyc2l2ZWx5R2V0QWxsRG9tYWluc1RoYXRIYXZlUmVkaXJlY3RlZFRvVGhp
c0RvbWFpbihtYXBFbnRyeS0+dmFsdWUsIGRvbWFpbnNUaGF0SGF2ZVJlZGlyZWN0ZWRUbywgbnVt
YmVyT2ZSZWN1cnNpdmVDYWxscyk7CisgICAgICAgIGlmIChkb21haW5zVGhhdEhhdmVSZWRpcmVj
dGVkVG8uYWRkKHN0YXRpc3RpY3MtPnJlZ2lzdHJhYmxlRG9tYWluKS5pc05ld0VudHJ5KQorICAg
ICAgICAgICAgbnVtYmVyT2ZSZWN1cnNpdmVDYWxscyA9IHJlY3Vyc2l2ZWx5R2V0QWxsRG9tYWlu
c1RoYXRIYXZlUmVkaXJlY3RlZFRvVGhpc0RvbWFpbigqc3RhdGlzdGljcywgZG9tYWluc1RoYXRI
YXZlUmVkaXJlY3RlZFRvLCBudW1iZXJPZlJlY3Vyc2l2ZUNhbGxzKTsKICAgICB9CiAKICAgICBy
ZXR1cm4gbnVtYmVyT2ZSZWN1cnNpdmVDYWxsczsKQEAgLTE3MywxNiArMTczLDE2IEBAIHZvaWQg
UmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjptYXJrQXNQcmV2YWxlbnRJZkhhc1Jl
ZGlyZWN0ZWRUb1ByZXZhbGVuCiAgICAgICAgIHJldHVybjsKIAogICAgIGZvciAoYXV0byYgc3Vi
cmVzb3VyY2VEb21haW5SZWRpcmVjdGVkVG8gOiByZXNvdXJjZVN0YXRpc3RpYy5zdWJyZXNvdXJj
ZVVuaXF1ZVJlZGlyZWN0c1RvKSB7Ci0gICAgICAgIGF1dG8gbWFwRW50cnkgPSBtX3Jlc291cmNl
U3RhdGlzdGljc01hcC5maW5kKFJlZ2lzdHJhYmxlRG9tYWluIHsgc3VicmVzb3VyY2VEb21haW5S
ZWRpcmVjdGVkVG8gfSk7Ci0gICAgICAgIGlmIChtYXBFbnRyeSAhPSBtX3Jlc291cmNlU3RhdGlz
dGljc01hcC5lbmQoKSAmJiBtYXBFbnRyeS0+dmFsdWUuaXNQcmV2YWxlbnRSZXNvdXJjZSkgewor
ICAgICAgICBhdXRvKiBzdGF0aXN0aWNzID0gbV9yZXNvdXJjZVN0YXRpc3RpY3NNYXAuZ2V0KFJl
Z2lzdHJhYmxlRG9tYWluIHsgc3VicmVzb3VyY2VEb21haW5SZWRpcmVjdGVkVG8gfSk7CisgICAg
ICAgIGlmIChzdGF0aXN0aWNzICYmIHN0YXRpc3RpY3MtPmlzUHJldmFsZW50UmVzb3VyY2UpIHsK
ICAgICAgICAgICAgIHNldFByZXZhbGVudFJlc291cmNlKHJlc291cmNlU3RhdGlzdGljLCBSZXNv
dXJjZUxvYWRQcmV2YWxlbmNlOjpIaWdoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQogICAgIH0KIAogICAgIGZvciAoYXV0byYgdG9wRnJhbWVEb21haW5SZWRpcmVjdGVkVG8gOiBy
ZXNvdXJjZVN0YXRpc3RpYy50b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvKSB7Ci0gICAgICAgIGF1
dG8gbWFwRW50cnkgPSBtX3Jlc291cmNlU3RhdGlzdGljc01hcC5maW5kKFJlZ2lzdHJhYmxlRG9t
YWluIHsgdG9wRnJhbWVEb21haW5SZWRpcmVjdGVkVG8gfSk7Ci0gICAgICAgIGlmIChtYXBFbnRy
eSAhPSBtX3Jlc291cmNlU3RhdGlzdGljc01hcC5lbmQoKSAmJiBtYXBFbnRyeS0+dmFsdWUuaXNQ
cmV2YWxlbnRSZXNvdXJjZSkgeworICAgICAgICBhdXRvKiBzdGF0aXN0aWNzID0gbV9yZXNvdXJj
ZVN0YXRpc3RpY3NNYXAuZ2V0KFJlZ2lzdHJhYmxlRG9tYWluIHsgdG9wRnJhbWVEb21haW5SZWRp
cmVjdGVkVG8gfSk7CisgICAgICAgIGlmIChzdGF0aXN0aWNzICYmIHN0YXRpc3RpY3MtPmlzUHJl
dmFsZW50UmVzb3VyY2UpIHsKICAgICAgICAgICAgIHNldFByZXZhbGVudFJlc291cmNlKHJlc291
cmNlU3RhdGlzdGljLCBSZXNvdXJjZUxvYWRQcmV2YWxlbmNlOjpIaWdoKTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQpAQCAtMjAyLDE2ICsyMDIsMTYgQEAgdm9pZCBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OmNsYXNzaWZ5UHJldmFsZW50UmVzb3VyY2VzKCkKICAg
ICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAgIGZvciAoYXV0byYgcmVzb3VyY2VT
dGF0aXN0aWMgOiBtX3Jlc291cmNlU3RhdGlzdGljc01hcC52YWx1ZXMoKSkgewotICAgICAgICBp
ZiAoc2hvdWxkU2tpcChyZXNvdXJjZVN0YXRpc3RpYy5yZWdpc3RyYWJsZURvbWFpbikpCisgICAg
ICAgIGlmIChzaG91bGRTa2lwKHJlc291cmNlU3RhdGlzdGljLT5yZWdpc3RyYWJsZURvbWFpbikp
CiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgaWYgKGlzUHJldmFsZW50RHVlVG9EZWJ1
Z01vZGUocmVzb3VyY2VTdGF0aXN0aWMpKQotICAgICAgICAgICAgc2V0UHJldmFsZW50UmVzb3Vy
Y2UocmVzb3VyY2VTdGF0aXN0aWMsIFJlc291cmNlTG9hZFByZXZhbGVuY2U6OkhpZ2gpOwotICAg
ICAgICBlbHNlIGlmICghcmVzb3VyY2VTdGF0aXN0aWMuaXNWZXJ5UHJldmFsZW50UmVzb3VyY2Up
IHsKLSAgICAgICAgICAgIG1hcmtBc1ByZXZhbGVudElmSGFzUmVkaXJlY3RlZFRvUHJldmFsZW50
KHJlc291cmNlU3RhdGlzdGljKTsKLSAgICAgICAgICAgIGF1dG8gY3VycmVudFByZXZhbGVuY2Ug
PSByZXNvdXJjZVN0YXRpc3RpYy5pc1ByZXZhbGVudFJlc291cmNlID8gUmVzb3VyY2VMb2FkUHJl
dmFsZW5jZTo6SGlnaCA6IFJlc291cmNlTG9hZFByZXZhbGVuY2U6OkxvdzsKLSAgICAgICAgICAg
IGF1dG8gbmV3UHJldmFsZW5jZSA9IGNsYXNzaWZpZXIoKS5jYWxjdWxhdGVSZXNvdXJjZVByZXZh
bGVuY2UocmVzb3VyY2VTdGF0aXN0aWMsIGN1cnJlbnRQcmV2YWxlbmNlKTsKKyAgICAgICAgaWYg
KGlzUHJldmFsZW50RHVlVG9EZWJ1Z01vZGUoKnJlc291cmNlU3RhdGlzdGljKSkKKyAgICAgICAg
ICAgIHNldFByZXZhbGVudFJlc291cmNlKCpyZXNvdXJjZVN0YXRpc3RpYywgUmVzb3VyY2VMb2Fk
UHJldmFsZW5jZTo6SGlnaCk7CisgICAgICAgIGVsc2UgaWYgKCFyZXNvdXJjZVN0YXRpc3RpYy0+
aXNWZXJ5UHJldmFsZW50UmVzb3VyY2UpIHsKKyAgICAgICAgICAgIG1hcmtBc1ByZXZhbGVudElm
SGFzUmVkaXJlY3RlZFRvUHJldmFsZW50KCpyZXNvdXJjZVN0YXRpc3RpYyk7CisgICAgICAgICAg
ICBhdXRvIGN1cnJlbnRQcmV2YWxlbmNlID0gcmVzb3VyY2VTdGF0aXN0aWMtPmlzUHJldmFsZW50
UmVzb3VyY2UgPyBSZXNvdXJjZUxvYWRQcmV2YWxlbmNlOjpIaWdoIDogUmVzb3VyY2VMb2FkUHJl
dmFsZW5jZTo6TG93OworICAgICAgICAgICAgYXV0byBuZXdQcmV2YWxlbmNlID0gY2xhc3NpZmll
cigpLmNhbGN1bGF0ZVJlc291cmNlUHJldmFsZW5jZSgqcmVzb3VyY2VTdGF0aXN0aWMsIGN1cnJl
bnRQcmV2YWxlbmNlKTsKICAgICAgICAgICAgIGlmIChuZXdQcmV2YWxlbmNlICE9IGN1cnJlbnRQ
cmV2YWxlbmNlKQotICAgICAgICAgICAgICAgIHNldFByZXZhbGVudFJlc291cmNlKHJlc291cmNl
U3RhdGlzdGljLCBuZXdQcmV2YWxlbmNlKTsKKyAgICAgICAgICAgICAgICBzZXRQcmV2YWxlbnRS
ZXNvdXJjZSgqcmVzb3VyY2VTdGF0aXN0aWMsIG5ld1ByZXZhbGVuY2UpOwogICAgICAgICB9CiAg
ICAgfQogfQpAQCAtNTEwLDggKzUxMCw4IEBAIGJvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01l
bW9yeVN0b3JlOjpoYXNIYWRVc2VySW50ZXJhY3Rpb24oY29uc3QgUmVnaXN0cmFibGVECiB7CiAg
ICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBhdXRvIG1hcEVudHJ5ID0gbV9y
ZXNvdXJjZVN0YXRpc3RpY3NNYXAuZmluZChkb21haW4pOwotICAgIHJldHVybiBtYXBFbnRyeSA9
PSBtX3Jlc291cmNlU3RhdGlzdGljc01hcC5lbmQoKSA/IGZhbHNlOiBoYXNIYWRVbmV4cGlyZWRS
ZWNlbnRVc2VySW50ZXJhY3Rpb24obWFwRW50cnktPnZhbHVlLCBvcGVyYXRpbmdEYXRlc1dpbmRv
dyk7CisgICAgYXV0byogc3RhdGlzdGljcyA9IG1fcmVzb3VyY2VTdGF0aXN0aWNzTWFwLmdldChk
b21haW4pOworICAgIHJldHVybiBzdGF0aXN0aWNzID8gaGFzSGFkVW5leHBpcmVkUmVjZW50VXNl
ckludGVyYWN0aW9uKCpzdGF0aXN0aWNzLCBvcGVyYXRpbmdEYXRlc1dpbmRvdykgOiBmYWxzZTsK
IH0KIAogdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OnNldFByZXZhbGVu
dFJlc291cmNlKFJlc291cmNlTG9hZFN0YXRpc3RpY3MmIHJlc291cmNlU3RhdGlzdGljLCBSZXNv
dXJjZUxvYWRQcmV2YWxlbmNlIG5ld1ByZXZhbGVuY2UpCkBAIC01MjYsMTEgKzUyNiwxMSBAQCB2
b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6c2V0UHJldmFsZW50UmVzb3Vy
Y2UoUmVzb3VyY2VMb2FkU3RhdGlzdAogICAgIEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+IGRv
bWFpbnNUaGF0SGF2ZVJlZGlyZWN0ZWRUbzsKICAgICByZWN1cnNpdmVseUdldEFsbERvbWFpbnNU
aGF0SGF2ZVJlZGlyZWN0ZWRUb1RoaXNEb21haW4ocmVzb3VyY2VTdGF0aXN0aWMsIGRvbWFpbnNU
aGF0SGF2ZVJlZGlyZWN0ZWRUbywgMCk7CiAgICAgZm9yIChhdXRvJiBkb21haW4gOiBkb21haW5z
VGhhdEhhdmVSZWRpcmVjdGVkVG8pIHsKLSAgICAgICAgYXV0byBtYXBFbnRyeSA9IG1fcmVzb3Vy
Y2VTdGF0aXN0aWNzTWFwLmZpbmQoZG9tYWluKTsKLSAgICAgICAgaWYgKG1hcEVudHJ5ID09IG1f
cmVzb3VyY2VTdGF0aXN0aWNzTWFwLmVuZCgpKQorICAgICAgICBhdXRvKiBzdGF0aXN0aWNzID0g
bV9yZXNvdXJjZVN0YXRpc3RpY3NNYXAuZ2V0KGRvbWFpbik7CisgICAgICAgIGlmICghc3RhdGlz
dGljcykKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBBU1NFUlQoIW1hcEVudHJ5LT52
YWx1ZS5pc1ByZXZhbGVudFJlc291cmNlKTsKLSAgICAgICAgbWFwRW50cnktPnZhbHVlLmlzUHJl
dmFsZW50UmVzb3VyY2UgPSB0cnVlOworICAgICAgICBBU1NFUlQoIXN0YXRpc3RpY3MtPmlzUHJl
dmFsZW50UmVzb3VyY2UpOworICAgICAgICBzdGF0aXN0aWNzLT5pc1ByZXZhbGVudFJlc291cmNl
ID0gdHJ1ZTsKICAgICB9CiB9CiAgICAgCkBAIC01NDgsNyArNTQ4LDcgQEAgdm9pZCBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OmR1bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKENv
bXBsZXRpb25IYW4KICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiUmVzb3VyY2UgbG9hZCBzdGF0
aXN0aWNzOlxuXG4iKTsKICAgICBWZWN0b3I8U3RyaW5nPiBzb3J0ZWRNYXBFbnRyaWVzOwogICAg
IGZvciAoYXV0byYgbWFwRW50cnkgOiBtX3Jlc291cmNlU3RhdGlzdGljc01hcC52YWx1ZXMoKSkK
LSAgICAgICAgc29ydGVkTWFwRW50cmllcy5hcHBlbmQobWFwRW50cnkudG9TdHJpbmcoKSk7Cisg
ICAgICAgIHNvcnRlZE1hcEVudHJpZXMuYXBwZW5kKG1hcEVudHJ5LT50b1N0cmluZygpKTsKIAog
ICAgIHN0ZDo6c29ydChzb3J0ZWRNYXBFbnRyaWVzLmJlZ2luKCksIHNvcnRlZE1hcEVudHJpZXMu
ZW5kKCksIFdURjo6Y29kZVBvaW50Q29tcGFyZUxlc3NUaGFuKTsKIApAQCAtNTczLDggKzU3Myw4
IEBAIGJvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjppc1ByZXZhbGVudFJl
c291cmNlKGNvbnN0IFJlZ2lzdHJhYmxlRG9tCiAgICAgaWYgKHNob3VsZFNraXAoZG9tYWluKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgYXV0byBtYXBFbnRyeSA9IG1fcmVzb3VyY2VT
dGF0aXN0aWNzTWFwLmZpbmQoZG9tYWluKTsKLSAgICByZXR1cm4gbWFwRW50cnkgPT0gbV9yZXNv
dXJjZVN0YXRpc3RpY3NNYXAuZW5kKCkgPyBmYWxzZSA6IG1hcEVudHJ5LT52YWx1ZS5pc1ByZXZh
bGVudFJlc291cmNlOworICAgIGF1dG8qIHN0YXRpc3RpY3MgPSBtX3Jlc291cmNlU3RhdGlzdGlj
c01hcC5nZXQoZG9tYWluKTsKKyAgICByZXR1cm4gc3RhdGlzdGljcyA/IHN0YXRpc3RpY3MtPmlz
UHJldmFsZW50UmVzb3VyY2UgOiBmYWxzZTsKIH0KIAogYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzTWVtb3J5U3RvcmU6OmlzVmVyeVByZXZhbGVudFJlc291cmNlKGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiBkb21haW4pIGNvbnN0CkBAIC01ODQsMzIgKzU4NCwzMiBAQCBib29sIFJlc291cmNl
TG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6aXNWZXJ5UHJldmFsZW50UmVzb3VyY2UoY29uc3Qg
UmVnaXN0cmFibAogICAgIGlmIChzaG91bGRTa2lwKGRvbWFpbikpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAKLSAgICBhdXRvIG1hcEVudHJ5ID0gbV9yZXNvdXJjZVN0YXRpc3RpY3NNYXAu
ZmluZChkb21haW4pOwotICAgIHJldHVybiBtYXBFbnRyeSA9PSBtX3Jlc291cmNlU3RhdGlzdGlj
c01hcC5lbmQoKSA/IGZhbHNlIDogbWFwRW50cnktPnZhbHVlLmlzUHJldmFsZW50UmVzb3VyY2Ug
JiYgbWFwRW50cnktPnZhbHVlLmlzVmVyeVByZXZhbGVudFJlc291cmNlOworICAgIGF1dG8qIHN0
YXRpc3RpY3MgPSBtX3Jlc291cmNlU3RhdGlzdGljc01hcC5nZXQoZG9tYWluKTsKKyAgICByZXR1
cm4gc3RhdGlzdGljcyA/IHN0YXRpc3RpY3MtPmlzUHJldmFsZW50UmVzb3VyY2UgJiYgc3RhdGlz
dGljcy0+aXNWZXJ5UHJldmFsZW50UmVzb3VyY2UgOiBmYWxzZTsKIH0KIAogYm9vbCBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OmlzUmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRl
cihjb25zdCBTdWJSZXNvdXJjZURvbWFpbiYgc3VicmVzb3VyY2VEb21haW4sIGNvbnN0IFRvcEZy
YW1lRG9tYWluJiB0b3BGcmFtZURvbWFpbikgY29uc3QKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6
OmlzTWFpbigpKTsKIAotICAgIGF1dG8gbWFwRW50cnkgPSBtX3Jlc291cmNlU3RhdGlzdGljc01h
cC5maW5kKHN1YnJlc291cmNlRG9tYWluKTsKLSAgICByZXR1cm4gbWFwRW50cnkgPT0gbV9yZXNv
dXJjZVN0YXRpc3RpY3NNYXAuZW5kKCkgPyBmYWxzZSA6IG1hcEVudHJ5LT52YWx1ZS5zdWJyZXNv
dXJjZVVuZGVyVG9wRnJhbWVEb21haW5zLmNvbnRhaW5zKHRvcEZyYW1lRG9tYWluKTsKKyAgICBh
dXRvKiBzdGF0aXN0aWNzID0gbV9yZXNvdXJjZVN0YXRpc3RpY3NNYXAuZ2V0KHN1YnJlc291cmNl
RG9tYWluKTsKKyAgICByZXR1cm4gc3RhdGlzdGljcyA/IHN0YXRpc3RpY3MtPnN1YnJlc291cmNl
VW5kZXJUb3BGcmFtZURvbWFpbnMuY29udGFpbnModG9wRnJhbWVEb21haW4pIDogZmFsc2U7CiB9
CiAKIGJvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjppc1JlZ2lzdGVyZWRB
c1N1YkZyYW1lVW5kZXIoY29uc3QgU3ViRnJhbWVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25z
dCBUb3BGcmFtZURvbWFpbiYgdG9wRnJhbWVEb21haW4pIGNvbnN0CiB7CiAgICAgQVNTRVJUKCFS
dW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBhdXRvIG1hcEVudHJ5ID0gbV9yZXNvdXJjZVN0YXRp
c3RpY3NNYXAuZmluZChzdWJGcmFtZURvbWFpbik7Ci0gICAgcmV0dXJuIG1hcEVudHJ5ID09IG1f
cmVzb3VyY2VTdGF0aXN0aWNzTWFwLmVuZCgpID8gZmFsc2UgOiBtYXBFbnRyeS0+dmFsdWUuc3Vi
ZnJhbWVVbmRlclRvcEZyYW1lRG9tYWlucy5jb250YWlucyh0b3BGcmFtZURvbWFpbik7CisgICAg
YXV0byogc3RhdGlzdGljcyA9IG1fcmVzb3VyY2VTdGF0aXN0aWNzTWFwLmdldChzdWJGcmFtZURv
bWFpbik7CisgICAgcmV0dXJuIHN0YXRpc3RpY3MgPyBzdGF0aXN0aWNzLT5zdWJmcmFtZVVuZGVy
VG9wRnJhbWVEb21haW5zLmNvbnRhaW5zKHRvcEZyYW1lRG9tYWluKSA6IGZhbHNlOwogfQogCiBi
b29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6aXNSZWdpc3RlcmVkQXNSZWRp
cmVjdGluZ1RvKGNvbnN0IFJlZGlyZWN0ZWRGcm9tRG9tYWluJiByZWRpcmVjdGVkRnJvbURvbWFp
biwgY29uc3QgUmVkaXJlY3RlZFRvRG9tYWluJiByZWRpcmVjdGVkVG9Eb21haW4pIGNvbnN0CiB7
CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBhdXRvIG1hcEVudHJ5ID0g
bV9yZXNvdXJjZVN0YXRpc3RpY3NNYXAuZmluZChyZWRpcmVjdGVkRnJvbURvbWFpbik7Ci0gICAg
cmV0dXJuIG1hcEVudHJ5ID09IG1fcmVzb3VyY2VTdGF0aXN0aWNzTWFwLmVuZCgpID8gZmFsc2Ug
OiBtYXBFbnRyeS0+dmFsdWUuc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUby5jb250YWlucyhy
ZWRpcmVjdGVkVG9Eb21haW4pOworICAgIGF1dG8qIHN0YXRpc3RpY3MgPSBtX3Jlc291cmNlU3Rh
dGlzdGljc01hcC5nZXQocmVkaXJlY3RlZEZyb21Eb21haW4pOworICAgIHJldHVybiBzdGF0aXN0
aWNzID8gc3RhdGlzdGljcy0+c3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUby5jb250YWlucyhy
ZWRpcmVjdGVkVG9Eb21haW4pIDogZmFsc2U7CiB9CiAKIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlz
dGljc01lbW9yeVN0b3JlOjpjbGVhclByZXZhbGVudFJlc291cmNlKGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiBkb21haW4pCkBAIC02MzMsOCArNjMzLDggQEAgYm9vbCBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzTWVtb3J5U3RvcmU6OmlzR3JhbmRmYXRoZXJlZChjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIGF1dG8gbWFwRW50
cnkgPSBtX3Jlc291cmNlU3RhdGlzdGljc01hcC5maW5kKGRvbWFpbik7Ci0gICAgcmV0dXJuIG1h
cEVudHJ5ID09IG1fcmVzb3VyY2VTdGF0aXN0aWNzTWFwLmVuZCgpID8gZmFsc2UgOiBtYXBFbnRy
eS0+dmFsdWUuZ3JhbmRmYXRoZXJlZDsKKyAgICBhdXRvKiBzdGF0aXN0aWNzID0gbV9yZXNvdXJj
ZVN0YXRpc3RpY3NNYXAuZ2V0KGRvbWFpbik7CisgICAgcmV0dXJuIHN0YXRpc3RpY3MgPyBzdGF0
aXN0aWNzLT5ncmFuZGZhdGhlcmVkIDogZmFsc2U7CiB9CiAKIHZvaWQgUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc01lbW9yeVN0b3JlOjpzZXRTdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW4oY29uc3Qg
U3ViRnJhbWVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBUb3BGcmFtZURvbWFpbiYgdG9w
RnJhbWVEb21haW4pCkBAIC03MDIsOCArNzAyLDggQEAgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYg
UmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjplbnN1cmVSZXNvdXJjZVN0YXRpc3QK
IHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIHJldHVybiBtX3Jlc291
cmNlU3RhdGlzdGljc01hcC5lbnN1cmUoZG9tYWluLCBbJmRvbWFpbl0gewotICAgICAgICByZXR1
cm4gUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhkb21haW4pOworICAgIHJldHVybiAqbV9yZXNvdXJj
ZVN0YXRpc3RpY3NNYXAuZW5zdXJlKGRvbWFpbiwgWyZkb21haW5dIHsKKyAgICAgICAgcmV0dXJu
IG1ha2VVbmlxdWU8UmVzb3VyY2VMb2FkU3RhdGlzdGljcz4oZG9tYWluKTsKICAgICB9KS5pdGVy
YXRvci0+dmFsdWU7CiB9CiAKQEAgLTcxNiw3ICs3MTYsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8S2V5
ZWRFbmNvZGVyPiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OmNyZWF0ZUVuY29k
ZXJGcgogICAgIGVuY29kZXItPmVuY29kZURvdWJsZSgiZW5kT2ZHcmFuZGZhdGhlcmluZ1RpbWVz
dGFtcCIsIGVuZE9mR3JhbmRmYXRoZXJpbmdUaW1lc3RhbXAoKS5zZWNvbmRzU2luY2VFcG9jaCgp
LnZhbHVlKCkpOwogCiAgICAgZW5jb2Rlci0+ZW5jb2RlT2JqZWN0cygiYnJvd3NpbmdTdGF0aXN0
aWNzIiwgbV9yZXNvdXJjZVN0YXRpc3RpY3NNYXAuYmVnaW4oKSwgbV9yZXNvdXJjZVN0YXRpc3Rp
Y3NNYXAuZW5kKCksIFtdKEtleWVkRW5jb2RlciYgZW5jb2RlcklubmVyLCBjb25zdCBhdXRvJiBk
b21haW4pIHsKLSAgICAgICAgZG9tYWluLnZhbHVlLmVuY29kZShlbmNvZGVySW5uZXIpOworICAg
ICAgICBkb21haW4udmFsdWUtPmVuY29kZShlbmNvZGVySW5uZXIpOwogICAgIH0pOwogCiAgICAg
YXV0byYgb3BlcmF0aW5nRGF0ZXMgPSB0aGlzLT5vcGVyYXRpbmdEYXRlcygpOwpAQCAtNzk1LDEw
ICs3OTUsMTAgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6Om1lcmdl
U3RhdGlzdGljcyhWZWN0b3I8UmVzb3VyY2VMb2FkU3RhdGkKIAogICAgIGZvciAoYXV0byYgc3Rh
dGlzdGljIDogc3RhdGlzdGljcykgewogICAgICAgICBhdXRvIHJlc3VsdCA9IG1fcmVzb3VyY2VT
dGF0aXN0aWNzTWFwLmVuc3VyZShzdGF0aXN0aWMucmVnaXN0cmFibGVEb21haW4sIFsmc3RhdGlz
dGljXSB7Ci0gICAgICAgICAgICByZXR1cm4gV1RGTW92ZShzdGF0aXN0aWMpOworICAgICAgICAg
ICAgcmV0dXJuIG1ha2VVbmlxdWU8UmVzb3VyY2VMb2FkU3RhdGlzdGljcz4oV1RGTW92ZShzdGF0
aXN0aWMpKTsKICAgICAgICAgfSk7CiAgICAgICAgIGlmICghcmVzdWx0LmlzTmV3RW50cnkpCi0g
ICAgICAgICAgICByZXN1bHQuaXRlcmF0b3ItPnZhbHVlLm1lcmdlKHN0YXRpc3RpYyk7CisgICAg
ICAgICAgICByZXN1bHQuaXRlcmF0b3ItPnZhbHVlLT5tZXJnZShzdGF0aXN0aWMpOwogICAgIH0K
IH0KIApAQCAtODI1LDEyICs4MjUsMTIgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVt
b3J5U3RvcmU6OnVwZGF0ZUNvb2tpZUJsb2NraW5nKENvbXBsZXRpb25IYW5kbGVyPHYKICAgICBW
ZWN0b3I8UmVnaXN0cmFibGVEb21haW4+IGRvbWFpbnNUb0Jsb2NrQnV0S2VlcENvb2tpZXNGb3I7
CiAgICAgVmVjdG9yPFJlZ2lzdHJhYmxlRG9tYWluPiBkb21haW5zV2l0aFVzZXJJbnRlcmFjdGlv
bkFzRmlyc3RQYXJ0eTsKICAgICBmb3IgKGF1dG8mIHJlc291cmNlU3RhdGlzdGljIDogbV9yZXNv
dXJjZVN0YXRpc3RpY3NNYXAudmFsdWVzKCkpIHsKLSAgICAgICAgaWYgKGhhc0hhZFVuZXhwaXJl
ZFJlY2VudFVzZXJJbnRlcmFjdGlvbihyZXNvdXJjZVN0YXRpc3RpYywgT3BlcmF0aW5nRGF0ZXNX
aW5kb3c6OkxvbmcpKSB7Ci0gICAgICAgICAgICBpZiAocmVzb3VyY2VTdGF0aXN0aWMuaXNQcmV2
YWxlbnRSZXNvdXJjZSkKLSAgICAgICAgICAgICAgICBkb21haW5zVG9CbG9ja0J1dEtlZXBDb29r
aWVzRm9yLmFwcGVuZChyZXNvdXJjZVN0YXRpc3RpYy5yZWdpc3RyYWJsZURvbWFpbi5pc29sYXRl
ZENvcHkoKSk7Ci0gICAgICAgICAgICBkb21haW5zV2l0aFVzZXJJbnRlcmFjdGlvbkFzRmlyc3RQ
YXJ0eS5hcHBlbmQocmVzb3VyY2VTdGF0aXN0aWMucmVnaXN0cmFibGVEb21haW4pOwotICAgICAg
ICB9IGVsc2UgaWYgKHJlc291cmNlU3RhdGlzdGljLmlzUHJldmFsZW50UmVzb3VyY2UpCi0gICAg
ICAgICAgICBkb21haW5zVG9CbG9ja0FuZERlbGV0ZUNvb2tpZXNGb3IuYXBwZW5kKHJlc291cmNl
U3RhdGlzdGljLnJlZ2lzdHJhYmxlRG9tYWluKTsKKyAgICAgICAgaWYgKGhhc0hhZFVuZXhwaXJl
ZFJlY2VudFVzZXJJbnRlcmFjdGlvbigqcmVzb3VyY2VTdGF0aXN0aWMsIE9wZXJhdGluZ0RhdGVz
V2luZG93OjpMb25nKSkgeworICAgICAgICAgICAgaWYgKHJlc291cmNlU3RhdGlzdGljLT5pc1By
ZXZhbGVudFJlc291cmNlKQorICAgICAgICAgICAgICAgIGRvbWFpbnNUb0Jsb2NrQnV0S2VlcENv
b2tpZXNGb3IuYXBwZW5kKHJlc291cmNlU3RhdGlzdGljLT5yZWdpc3RyYWJsZURvbWFpbi5pc29s
YXRlZENvcHkoKSk7CisgICAgICAgICAgICBkb21haW5zV2l0aFVzZXJJbnRlcmFjdGlvbkFzRmly
c3RQYXJ0eS5hcHBlbmQocmVzb3VyY2VTdGF0aXN0aWMtPnJlZ2lzdHJhYmxlRG9tYWluKTsKKyAg
ICAgICAgfSBlbHNlIGlmIChyZXNvdXJjZVN0YXRpc3RpYy0+aXNQcmV2YWxlbnRSZXNvdXJjZSkK
KyAgICAgICAgICAgIGRvbWFpbnNUb0Jsb2NrQW5kRGVsZXRlQ29va2llc0Zvci5hcHBlbmQocmVz
b3VyY2VTdGF0aXN0aWMtPnJlZ2lzdHJhYmxlRG9tYWluKTsKICAgICB9CiAKICAgICBpZiAoZG9t
YWluc1RvQmxvY2tBbmREZWxldGVDb29raWVzRm9yLmlzRW1wdHkoKSAmJiBkb21haW5zVG9CbG9j
a0J1dEtlZXBDb29raWVzRm9yLmlzRW1wdHkoKSAmJiBkb21haW5zV2l0aFVzZXJJbnRlcmFjdGlv
bkFzRmlyc3RQYXJ0eS5pc0VtcHR5KCkgJiYgIWRlYnVnTW9kZUVuYWJsZWQoKSkgewpAQCAtODY1
LDcgKzg2NSw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpwcm9j
ZXNzU3RhdGlzdGljcyhjb25zdCBGdW5jdGlvbjx2b2lkKGNvCiAgICAgQVNTRVJUKCFSdW5Mb29w
Ojppc01haW4oKSk7CiAKICAgICBmb3IgKGF1dG8mIHJlc291cmNlU3RhdGlzdGljIDogbV9yZXNv
dXJjZVN0YXRpc3RpY3NNYXAudmFsdWVzKCkpCi0gICAgICAgIHByb2Nlc3NGdW5jdGlvbihyZXNv
dXJjZVN0YXRpc3RpYyk7CisgICAgICAgIHByb2Nlc3NGdW5jdGlvbigqcmVzb3VyY2VTdGF0aXN0
aWMpOwogfQogCiBib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6aGFzSGFk
VW5leHBpcmVkUmVjZW50VXNlckludGVyYWN0aW9uKFJlc291cmNlTG9hZFN0YXRpc3RpY3MmIHJl
c291cmNlU3RhdGlzdGljLCBPcGVyYXRpbmdEYXRlc1dpbmRvdyBvcGVyYXRpbmdEYXRlc1dpbmRv
dykgY29uc3QKQEAgLTk1MSwzMCArOTUxLDMwIEBAIFJlZ2lzdHJhYmxlRG9tYWluc1RvRGVsZXRl
T3JSZXN0cmljdFdlYnNpdGVEYXRhRm9yIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTCiAg
ICAgYXV0byBvbGRlc3RVc2VySW50ZXJhY3Rpb24gPSBub3c7CiAgICAgUmVnaXN0cmFibGVEb21h
aW5zVG9EZWxldGVPclJlc3RyaWN0V2Vic2l0ZURhdGFGb3IgdG9EZWxldGVPclJlc3RyaWN0Rm9y
OwogICAgIGZvciAoYXV0byYgc3RhdGlzdGljIDogbV9yZXNvdXJjZVN0YXRpc3RpY3NNYXAudmFs
dWVzKCkpIHsKLSAgICAgICAgaWYgKHNob3VsZEV4ZW1wdEZyb21XZWJzaXRlRGF0YURlbGV0aW9u
KHN0YXRpc3RpYy5yZWdpc3RyYWJsZURvbWFpbikpCisgICAgICAgIGlmIChzaG91bGRFeGVtcHRG
cm9tV2Vic2l0ZURhdGFEZWxldGlvbihzdGF0aXN0aWMtPnJlZ2lzdHJhYmxlRG9tYWluKSkKICAg
ICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBpZiAoYXV0byBtb3N0UmVjZW50VXNlckludGVy
YWN0aW9uVGltZSA9IHRoaXMtPm1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lKHN0YXRpc3Rp
YykpCisgICAgICAgIGlmIChhdXRvIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lID0gdGhp
cy0+bW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUoKnN0YXRpc3RpYykpCiAgICAgICAgICAg
ICBvbGRlc3RVc2VySW50ZXJhY3Rpb24gPSBzdGQ6Om1pbihvbGRlc3RVc2VySW50ZXJhY3Rpb24s
ICptb3N0UmVjZW50VXNlckludGVyYWN0aW9uVGltZSk7Ci0gICAgICAgIGlmIChzaG91bGRSZW1v
dmVBbGxXZWJzaXRlRGF0YUZvcihzdGF0aXN0aWMsIHNob3VsZENoZWNrRm9yR3JhbmRmYXRoZXJp
bmcpKSB7Ci0gICAgICAgICAgICB0b0RlbGV0ZU9yUmVzdHJpY3RGb3IuZG9tYWluc1RvRGVsZXRl
QWxsQ29va2llc0Zvci5hcHBlbmQoc3RhdGlzdGljLnJlZ2lzdHJhYmxlRG9tYWluKTsKLSAgICAg
ICAgICAgIHRvRGVsZXRlT3JSZXN0cmljdEZvci5kb21haW5zVG9EZWxldGVBbGxOb25Db29raWVX
ZWJzaXRlRGF0YUZvci5hcHBlbmQoc3RhdGlzdGljLnJlZ2lzdHJhYmxlRG9tYWluKTsKKyAgICAg
ICAgaWYgKHNob3VsZFJlbW92ZUFsbFdlYnNpdGVEYXRhRm9yKCpzdGF0aXN0aWMsIHNob3VsZENo
ZWNrRm9yR3JhbmRmYXRoZXJpbmcpKSB7CisgICAgICAgICAgICB0b0RlbGV0ZU9yUmVzdHJpY3RG
b3IuZG9tYWluc1RvRGVsZXRlQWxsQ29va2llc0Zvci5hcHBlbmQoc3RhdGlzdGljLT5yZWdpc3Ry
YWJsZURvbWFpbik7CisgICAgICAgICAgICB0b0RlbGV0ZU9yUmVzdHJpY3RGb3IuZG9tYWluc1Rv
RGVsZXRlQWxsTm9uQ29va2llV2Vic2l0ZURhdGFGb3IuYXBwZW5kKHN0YXRpc3RpYy0+cmVnaXN0
cmFibGVEb21haW4pOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKHNob3VsZFJl
bW92ZUFsbEJ1dENvb2tpZXNGb3Ioc3RhdGlzdGljLCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVy
aW5nKSkgewotICAgICAgICAgICAgICAgIHRvRGVsZXRlT3JSZXN0cmljdEZvci5kb21haW5zVG9E
ZWxldGVBbGxOb25Db29raWVXZWJzaXRlRGF0YUZvci5hcHBlbmQoc3RhdGlzdGljLnJlZ2lzdHJh
YmxlRG9tYWluKTsKLSAgICAgICAgICAgICAgICBzdGF0aXN0aWMuZ290TGlua0RlY29yYXRpb25G
cm9tUHJldmFsZW50UmVzb3VyY2UgPSBmYWxzZTsKKyAgICAgICAgICAgIGlmIChzaG91bGRSZW1v
dmVBbGxCdXRDb29raWVzRm9yKCpzdGF0aXN0aWMsIHNob3VsZENoZWNrRm9yR3JhbmRmYXRoZXJp
bmcpKSB7CisgICAgICAgICAgICAgICAgdG9EZWxldGVPclJlc3RyaWN0Rm9yLmRvbWFpbnNUb0Rl
bGV0ZUFsbE5vbkNvb2tpZVdlYnNpdGVEYXRhRm9yLmFwcGVuZChzdGF0aXN0aWMtPnJlZ2lzdHJh
YmxlRG9tYWluKTsKKyAgICAgICAgICAgICAgICBzdGF0aXN0aWMtPmdvdExpbmtEZWNvcmF0aW9u
RnJvbVByZXZhbGVudFJlc291cmNlID0gZmFsc2U7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICBpZiAoc2hvdWxkRW5mb3JjZVNhbWVTaXRlU3RyaWN0Rm9yKHN0YXRpc3RpYywgc2hvdWxkQ2hl
Y2tGb3JHcmFuZGZhdGhlcmluZykpIHsKLSAgICAgICAgICAgICAgICB0b0RlbGV0ZU9yUmVzdHJp
Y3RGb3IuZG9tYWluc1RvRW5mb3JjZVNhbWVTaXRlU3RyaWN0Rm9yLmFwcGVuZChzdGF0aXN0aWMu
cmVnaXN0cmFibGVEb21haW4pOworICAgICAgICAgICAgaWYgKHNob3VsZEVuZm9yY2VTYW1lU2l0
ZVN0cmljdEZvcigqc3RhdGlzdGljLCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nKSkgewor
ICAgICAgICAgICAgICAgIHRvRGVsZXRlT3JSZXN0cmljdEZvci5kb21haW5zVG9FbmZvcmNlU2Ft
ZVNpdGVTdHJpY3RGb3IuYXBwZW5kKHN0YXRpc3RpYy0+cmVnaXN0cmFibGVEb21haW4pOwogCiAg
ICAgICAgICAgICAgICAgaWYgKFVOTElLRUxZKGRlYnVnTG9nZ2luZ0VuYWJsZWQoKSkpIHsKLSAg
ICAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSU5GTyhJVFBEZWJ1ZywgIlNjaGVkdWxlZCAl
IiBQVUJMSUNfTE9HX1NUUklORyAiIHRvIGhhdmUgaXRzIGNvb2tpZXMgc2V0IHRvIFNhbWVTaXRl
PXN0cmljdC4iLCBzdGF0aXN0aWMucmVnaXN0cmFibGVEb21haW4uc3RyaW5nKCkudXRmOCgpLmRh
dGEoKSk7Ci0gICAgICAgICAgICAgICAgICAgIGRlYnVnQnJvYWRjYXN0Q29uc29sZU1lc3NhZ2Uo
TWVzc2FnZVNvdXJjZTo6SVRQRGVidWcsIE1lc3NhZ2VMZXZlbDo6SW5mbywgbWFrZVN0cmluZygi
U2NoZWR1bGVkICciLCBzdGF0aXN0aWMucmVnaXN0cmFibGVEb21haW4uc3RyaW5nKCksICInIHRv
IGhhdmUgaXRzIGNvb2tpZXMgc2V0IHRvIFNhbWVTaXRlPXN0cmljdCcuIikpOworICAgICAgICAg
ICAgICAgICAgICBSRUxFQVNFX0xPR19JTkZPKElUUERlYnVnLCAiU2NoZWR1bGVkICUiIFBVQkxJ
Q19MT0dfU1RSSU5HICIgdG8gaGF2ZSBpdHMgY29va2llcyBzZXQgdG8gU2FtZVNpdGU9c3RyaWN0
LiIsIHN0YXRpc3RpYy0+cmVnaXN0cmFibGVEb21haW4uc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7
CisgICAgICAgICAgICAgICAgICAgIGRlYnVnQnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZTo6SVRQRGVidWcsIE1lc3NhZ2VMZXZlbDo6SW5mbywgbWFrZVN0cmluZygiU2NoZWR1
bGVkICciLCBzdGF0aXN0aWMtPnJlZ2lzdHJhYmxlRG9tYWluLnN0cmluZygpLCAiJyB0byBoYXZl
IGl0cyBjb29raWVzIHNldCB0byBTYW1lU2l0ZT1zdHJpY3QnLiIpKTsKICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoc2hvdWxkQ2xlYXJH
cmFuZGZhdGhlcmluZyAmJiBzdGF0aXN0aWMuZ3JhbmRmYXRoZXJlZCkKLSAgICAgICAgICAgIHN0
YXRpc3RpYy5ncmFuZGZhdGhlcmVkID0gZmFsc2U7CisgICAgICAgIGlmIChzaG91bGRDbGVhckdy
YW5kZmF0aGVyaW5nICYmIHN0YXRpc3RpYy0+Z3JhbmRmYXRoZXJlZCkKKyAgICAgICAgICAgIHN0
YXRpc3RpYy0+Z3JhbmRmYXRoZXJlZCA9IGZhbHNlOwogICAgIH0KIAogICAgIC8vIEdpdmUgdGhl
IHVzZXIgZW5vdWdoIHRpbWUgdG8gaW50ZXJhY3Qgd2l0aCB3ZWJzaXRlcyB1bnRpbCB3ZSByZW1v
dmUgbm9uLWNvb2tpZSB3ZWJzaXRlIGRhdGEuCkBAIC05OTgsNyArOTk4LDcgQEAgdm9pZCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OnBydW5lU3RhdGlzdGljc0lmTmVlZGVkKCkK
IAogICAgIFZlY3RvcjxTdGF0aXN0aWNzTGFzdFNlZW4+IHJlc291cmNlc1RvUHJ1bmVQZXJJbXBv
cnRhbmNlW21heEltcG9ydGFuY2UgKyAxXTsKICAgICBmb3IgKGF1dG8mIHJlc291cmNlU3RhdGlz
dGljIDogbV9yZXNvdXJjZVN0YXRpc3RpY3NNYXAudmFsdWVzKCkpCi0gICAgICAgIHJlc291cmNl
c1RvUHJ1bmVQZXJJbXBvcnRhbmNlW2NvbXB1dGVJbXBvcnRhbmNlKHJlc291cmNlU3RhdGlzdGlj
KV0uYXBwZW5kKHsgcmVzb3VyY2VTdGF0aXN0aWMucmVnaXN0cmFibGVEb21haW4sIHJlc291cmNl
U3RhdGlzdGljLmxhc3RTZWVuIH0pOworICAgICAgICByZXNvdXJjZXNUb1BydW5lUGVySW1wb3J0
YW5jZVtjb21wdXRlSW1wb3J0YW5jZSgqcmVzb3VyY2VTdGF0aXN0aWMpXS5hcHBlbmQoeyByZXNv
dXJjZVN0YXRpc3RpYy0+cmVnaXN0cmFibGVEb21haW4sIHJlc291cmNlU3RhdGlzdGljLT5sYXN0
U2VlbiB9KTsKIAogICAgIGZvciAodW5zaWduZWQgaW1wb3J0YW5jZSA9IDA7IG51bWJlck9mRW50
cmllc0xlZnRUb1BydW5lICYmIGltcG9ydGFuY2UgPD0gbWF4SW1wb3J0YW5jZTsgKytpbXBvcnRh
bmNlKQogICAgICAgICBwcnVuZVJlc291cmNlcyhtX3Jlc291cmNlU3RhdGlzdGljc01hcCwgcmVz
b3VyY2VzVG9QcnVuZVBlckltcG9ydGFuY2VbaW1wb3J0YW5jZV0sIG51bWJlck9mRW50cmllc0xl
ZnRUb1BydW5lKTsKQEAgLTEwMTgsMTYgKzEwMTgsMTYgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzTWVtb3J5U3RvcmU6OnJlbW92ZURhdGFGb3JEb21haW4oY29uc3QgUmVnaXN0cmFibGVE
b20KIHsKICAgICBtX3Jlc291cmNlU3RhdGlzdGljc01hcC5yZW1vdmUoZG9tYWluKTsKICAgICAK
LSAgICBmb3IgKGF1dG8mIHN0YXRpc3RpYyA6IG1fcmVzb3VyY2VTdGF0aXN0aWNzTWFwKSB7Ci0g
ICAgICAgIHN0YXRpc3RpYy52YWx1ZS50b3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvLnJlbW92ZShk
b21haW4pOwotICAgICAgICBzdGF0aXN0aWMudmFsdWUudG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNU
b1NpbmNlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudC5yZW1vdmUoZG9tYWluKTsKLSAgICAgICAg
c3RhdGlzdGljLnZhbHVlLnRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzRnJvbS5yZW1vdmUoZG9tYWlu
KTsKLSAgICAgICAgc3RhdGlzdGljLnZhbHVlLnRvcEZyYW1lTGlua0RlY29yYXRpb25zRnJvbS5y
ZW1vdmUoZG9tYWluKTsKLSAgICAgICAgc3RhdGlzdGljLnZhbHVlLnRvcEZyYW1lTG9hZGVkVGhp
cmRQYXJ0eVNjcmlwdHMucmVtb3ZlKGRvbWFpbik7Ci0gICAgICAgIHN0YXRpc3RpYy52YWx1ZS5z
dWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW5zLnJlbW92ZShkb21haW4pOwotICAgICAgICBzdGF0
aXN0aWMudmFsdWUuc3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWlucy5yZW1vdmUoZG9tYWlu
KTsKLSAgICAgICAgc3RhdGlzdGljLnZhbHVlLnN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG8u
cmVtb3ZlKGRvbWFpbik7Ci0gICAgICAgIHN0YXRpc3RpYy52YWx1ZS5zdWJyZXNvdXJjZVVuaXF1
ZVJlZGlyZWN0c0Zyb20ucmVtb3ZlKGRvbWFpbik7CisgICAgZm9yIChhdXRvJiBzdGF0aXN0aWMg
OiBtX3Jlc291cmNlU3RhdGlzdGljc01hcC52YWx1ZXMoKSkgeworICAgICAgICBzdGF0aXN0aWMt
PnRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG8ucmVtb3ZlKGRvbWFpbik7CisgICAgICAgIHN0YXRp
c3RpYy0+dG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUb1NpbmNlU2FtZVNpdGVTdHJpY3RFbmZvcmNl
bWVudC5yZW1vdmUoZG9tYWluKTsKKyAgICAgICAgc3RhdGlzdGljLT50b3BGcmFtZVVuaXF1ZVJl
ZGlyZWN0c0Zyb20ucmVtb3ZlKGRvbWFpbik7CisgICAgICAgIHN0YXRpc3RpYy0+dG9wRnJhbWVM
aW5rRGVjb3JhdGlvbnNGcm9tLnJlbW92ZShkb21haW4pOworICAgICAgICBzdGF0aXN0aWMtPnRv
cEZyYW1lTG9hZGVkVGhpcmRQYXJ0eVNjcmlwdHMucmVtb3ZlKGRvbWFpbik7CisgICAgICAgIHN0
YXRpc3RpYy0+c3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWlucy5yZW1vdmUoZG9tYWluKTsKKyAg
ICAgICAgc3RhdGlzdGljLT5zdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW5zLnJlbW92ZShk
b21haW4pOworICAgICAgICBzdGF0aXN0aWMtPnN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG8u
cmVtb3ZlKGRvbWFpbik7CisgICAgICAgIHN0YXRpc3RpYy0+c3VicmVzb3VyY2VVbmlxdWVSZWRp
cmVjdHNGcm9tLnJlbW92ZShkb21haW4pOwogICAgIH0KIH0KIApAQCAtMTE1OSw3ICsxMTU5LDcg
QEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6Omluc2VydEV4cGlyZWRT
dGF0aXN0aWNGb3JUZXN0aW5nKGNvbnN0IFIKICAgICBzdGF0aXN0aWMuZ290TGlua0RlY29yYXRp
b25Gcm9tUHJldmFsZW50UmVzb3VyY2UgPSBpc1NjaGVkdWxlZEZvckFsbEJ1dENvb2tpZURhdGFS
ZW1vdmFsOwogCiAgICAgbV9yZXNvdXJjZVN0YXRpc3RpY3NNYXAuZW5zdXJlKHN0YXRpc3RpYy5y
ZWdpc3RyYWJsZURvbWFpbiwgWyZzdGF0aXN0aWNdIHsKLSAgICAgICAgcmV0dXJuIFdURk1vdmUo
c3RhdGlzdGljKTsKKyAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8UmVzb3VyY2VMb2FkU3RhdGlz
dGljcz4oV1RGTW92ZShzdGF0aXN0aWMpKTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NNZW1vcnlTdG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVy
L1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oCmluZGV4IGQ1NjRkZWQ4N2JjMmM5
ZjQyOGMyYTcxYWUwOGFmOTJlYTUwMDA4YmIuLmY1ZjdlMWEwZjYxMDEwMDQwYTQwMDNkZjJhZmMx
Y2Y4NGZiMzU2YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xh
c3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01l
bW9yeVN0b3JlLmgKQEAgLTUzLDcgKzUzLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNFbXB0eSgp
IGNvbnN0IG92ZXJyaWRlOwogCiAgICAgVmVjdG9yPFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6VGhpcmRQYXJ0eURhdGE+IGFnZ3JlZ2F0ZWRUaGlyZFBhcnR5RGF0YSgpIGNvbnN0IG92
ZXJyaWRlOwotICAgIGNvbnN0IEhhc2hNYXA8UmVnaXN0cmFibGVEb21haW4sIFdlYkNvcmU6OlJl
c291cmNlTG9hZFN0YXRpc3RpY3M+JiBkYXRhKCkgY29uc3QgeyByZXR1cm4gbV9yZXNvdXJjZVN0
YXRpc3RpY3NNYXA7IH0KKyAgICBjb25zdCBIYXNoTWFwPFJlZ2lzdHJhYmxlRG9tYWluLCBzdGQ6
OnVuaXF1ZV9wdHI8V2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljcz4+JiBkYXRhKCkgY29u
c3QgeyByZXR1cm4gbV9yZXNvdXJjZVN0YXRpc3RpY3NNYXA7IH0KIAogICAgIHN0ZDo6dW5pcXVl
X3B0cjxXZWJDb3JlOjpLZXllZEVuY29kZXI+IGNyZWF0ZUVuY29kZXJGcm9tRGF0YSgpIGNvbnN0
OwogICAgIHZvaWQgbWVyZ2VXaXRoRGF0YUZyb21EZWNvZGVyKFdlYkNvcmU6OktleWVkRGVjb2Rl
ciYpOwpAQCAtMTQ5LDcgKzE0OSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBpc01lbW9yeVN0b3Jl
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogICAgIE9wdGlvbmFsPFdhbGxUaW1lPiBt
b3N0UmVjZW50VXNlckludGVyYWN0aW9uVGltZShjb25zdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
Jik7CiAKLSAgICBIYXNoTWFwPFJlZ2lzdHJhYmxlRG9tYWluLCBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzPiBtX3Jlc291cmNlU3RhdGlzdGljc01hcDsKKyAgICBIYXNoTWFwPFJlZ2lzdHJhYmxlRG9t
YWluLCBzdGQ6OnVuaXF1ZV9wdHI8UmVzb3VyY2VMb2FkU3RhdGlzdGljcz4+IG1fcmVzb3VyY2VT
dGF0aXN0aWNzTWFwOwogICAgIFZlY3RvcjxPcGVyYXRpbmdEYXRlPiBtX29wZXJhdGluZ0RhdGVz
OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24v
QXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRp
Y2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAKaW5kZXggMGE1ODFmMWY2NDEzNzZkZjVi
NDRhMmE2NzU4YTAzYWM2Y2FjYTA2MS4uNTg5NWY0Zjk5NTU0ZjAyODYzMjc2NDFjOGZlMTczMTBm
NzEzOWY0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24v
QXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRo
ZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIEF1
dGhlbnRpY2F0aW9uTWFuYWdlcjo6QXV0aGVudGljYXRpb25NYW5hZ2VyKE5ldHdvcmtQcm9jZXNz
JiBwcm9jZXNzKQogICAgIG1fcHJvY2Vzcy5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OkF1
dGhlbnRpY2F0aW9uTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAqdGhpcyk7CiB9CiAK
LXVpbnQ2NF90IEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6YWRkQ2hhbGxlbmdlVG9DaGFsbGVuZ2VN
YXAoQ2hhbGxlbmdlJiYgY2hhbGxlbmdlKQordWludDY0X3QgQXV0aGVudGljYXRpb25NYW5hZ2Vy
OjphZGRDaGFsbGVuZ2VUb0NoYWxsZW5nZU1hcChzdGQ6OnVuaXF1ZV9wdHI8Q2hhbGxlbmdlPiYm
IGNoYWxsZW5nZSkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC04Miw3
ICs4Miw3IEBAIGJvb2wgQXV0aGVudGljYXRpb25NYW5hZ2VyOjpzaG91bGRDb2FsZXNjZUNoYWxs
ZW5nZShXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZ2VJCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgIGZvciAoYXV0byYgaXRlbSA6IG1fY2hhbGxlbmdlcykgewotICAgICAgICBpZiAoaXRl
bS5rZXkgIT0gY2hhbGxlbmdlSUQgJiYgaXRlbS52YWx1ZS5wYWdlSUQgPT0gcGFnZUlEICYmIFBy
b3RlY3Rpb25TcGFjZTo6Y29tcGFyZShjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCksIGl0ZW0u
dmFsdWUuY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpKSkKKyAgICAgICAgaWYgKGl0ZW0ua2V5
ICE9IGNoYWxsZW5nZUlEICYmIGl0ZW0udmFsdWUtPnBhZ2VJRCA9PSBwYWdlSUQgJiYgUHJvdGVj
dGlvblNwYWNlOjpjb21wYXJlKGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKSwgaXRlbS52YWx1
ZS0+Y2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpKSkKICAgICAgICAgICAgIHJldHVybiB0cnVl
OwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CkBAIC05MCwxOSArOTAsMjAgQEAgYm9vbCBBdXRo
ZW50aWNhdGlvbk1hbmFnZXI6OnNob3VsZENvYWxlc2NlQ2hhbGxlbmdlKFdlYlBhZ2VQcm94eUlk
ZW50aWZpZXIgcGFnZUkKIAogVmVjdG9yPHVpbnQ2NF90PiBBdXRoZW50aWNhdGlvbk1hbmFnZXI6
OmNvYWxlc2NlQ2hhbGxlbmdlc01hdGNoaW5nKHVpbnQ2NF90IGNoYWxsZW5nZUlEKSBjb25zdAog
ewotICAgIGF1dG8gaXRlcmF0b3IgPSBtX2NoYWxsZW5nZXMuZmluZChjaGFsbGVuZ2VJRCk7Ci0g
ICAgQVNTRVJUKGl0ZXJhdG9yICE9IG1fY2hhbGxlbmdlcy5lbmQoKSk7Ci0KLSAgICBhdXRvJiBj
aGFsbGVuZ2UgPSBpdGVyYXRvci0+dmFsdWU7CisgICAgYXV0byogY2hhbGxlbmdlID0gbV9jaGFs
bGVuZ2VzLmdldChjaGFsbGVuZ2VJRCk7CisgICAgaWYgKCFjaGFsbGVuZ2UpIHsKKyAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQogCiAgICAg
VmVjdG9yPHVpbnQ2NF90PiBjaGFsbGVuZ2VzVG9Db2FsZXNjZTsKICAgICBjaGFsbGVuZ2VzVG9D
b2FsZXNjZS5hcHBlbmQoY2hhbGxlbmdlSUQpOwogCi0gICAgaWYgKCFjYW5Db2FsZXNjZUNoYWxs
ZW5nZShjaGFsbGVuZ2UuY2hhbGxlbmdlKSkKKyAgICBpZiAoIWNhbkNvYWxlc2NlQ2hhbGxlbmdl
KGNoYWxsZW5nZS0+Y2hhbGxlbmdlKSkKICAgICAgICAgcmV0dXJuIGNoYWxsZW5nZXNUb0NvYWxl
c2NlOwogCiAgICAgZm9yIChhdXRvJiBpdGVtIDogbV9jaGFsbGVuZ2VzKSB7Ci0gICAgICAgIGlm
IChpdGVtLmtleSAhPSBjaGFsbGVuZ2VJRCAmJiBpdGVtLnZhbHVlLnBhZ2VJRCA9PSBjaGFsbGVu
Z2UucGFnZUlEICYmIFByb3RlY3Rpb25TcGFjZTo6Y29tcGFyZShjaGFsbGVuZ2UuY2hhbGxlbmdl
LnByb3RlY3Rpb25TcGFjZSgpLCBpdGVtLnZhbHVlLmNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2Uo
KSkpCisgICAgICAgIGlmIChpdGVtLmtleSAhPSBjaGFsbGVuZ2VJRCAmJiBpdGVtLnZhbHVlLT5w
YWdlSUQgPT0gY2hhbGxlbmdlLT5wYWdlSUQgJiYgUHJvdGVjdGlvblNwYWNlOjpjb21wYXJlKGNo
YWxsZW5nZS0+Y2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpLCBpdGVtLnZhbHVlLT5jaGFsbGVu
Z2UucHJvdGVjdGlvblNwYWNlKCkpKQogICAgICAgICAgICAgY2hhbGxlbmdlc1RvQ29hbGVzY2Uu
YXBwZW5kKGl0ZW0ua2V5KTsKICAgICB9CiAKQEAgLTExNCw3ICsxMTUsNyBAQCB2b2lkIEF1dGhl
bnRpY2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFBBTDo6
U2Vzc2lvbklEIHNlcwogICAgIGlmICghcGFnZUlEKQogICAgICAgICByZXR1cm4gY29tcGxldGlv
bkhhbmRsZXIoQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbjo6UGVyZm9ybURlZmF1
bHRIYW5kbGluZywgeyB9KTsKIAotICAgIHVpbnQ2NF90IGNoYWxsZW5nZUlEID0gYWRkQ2hhbGxl
bmdlVG9DaGFsbGVuZ2VNYXAoeyBwYWdlSUQsIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSB9KTsKKyAgICB1aW50NjRfdCBjaGFsbGVuZ2VJRCA9IGFk
ZENoYWxsZW5nZVRvQ2hhbGxlbmdlTWFwKG1ha2VVbmlxdWU8Q2hhbGxlbmdlPihwYWdlSUQsIGF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkpOwogCiAg
ICAgLy8gQ29hbGVzY2UgY2hhbGxlbmdlcyBpbiB0aGUgc2FtZSBwcm90ZWN0aW9uIHNwYWNlIGFu
ZCBpbiB0aGUgc2FtZSBwYWdlLgogICAgIGlmIChzaG91bGRDb2FsZXNjZUNoYWxsZW5nZShwYWdl
SUQsIGNoYWxsZW5nZUlELCBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSkpCkBAIC0xMjksNyArMTMw
LDcgQEAgdm9pZCBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZShQQUw6OlNlc3Npb25JRCBzZXMKIHZvaWQgQXV0aGVudGljYXRpb25NYW5hZ2Vy
OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoSVBDOjpNZXNzYWdlU2VuZGVyJiBk
b3dubG9hZCwgY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlLCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25I
YW5kbGVyKQogewogICAgIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgZHVtbXlQYWdlSUQ7Ci0gICAg
dWludDY0X3QgY2hhbGxlbmdlSUQgPSBhZGRDaGFsbGVuZ2VUb0NoYWxsZW5nZU1hcCh7IGR1bW15
UGFnZUlELCBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikgfSk7CisgICAgdWludDY0X3QgY2hhbGxlbmdlSUQgPSBhZGRDaGFsbGVuZ2VUb0NoYWxsZW5n
ZU1hcChtYWtlVW5pcXVlPENoYWxsZW5nZT4oZHVtbXlQYWdlSUQsIGF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkpOwogICAgIAogICAgIC8vIENvYWxl
c2NlIGNoYWxsZW5nZXMgaW4gdGhlIHNhbWUgcHJvdGVjdGlvbiBzcGFjZSBhbmQgaW4gdGhlIHNh
bWUgcGFnZS4KICAgICBpZiAoc2hvdWxkQ29hbGVzY2VDaGFsbGVuZ2UoZHVtbXlQYWdlSUQsIGNo
YWxsZW5nZUlELCBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSkpCkBAIC0xNDQsOCArMTQ1LDggQEAg
dm9pZCBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OmNvbXBsZXRlQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UodWludDY0X3QgY2hhbGxlbmdlSUQKIAogICAgIGZvciAoYXV0byYgY29hbGVzY2VkQ2hhbGxl
bmdlSUQgOiBjb2FsZXNjZUNoYWxsZW5nZXNNYXRjaGluZyhjaGFsbGVuZ2VJRCkpIHsKICAgICAg
ICAgYXV0byBjaGFsbGVuZ2UgPSBtX2NoYWxsZW5nZXMudGFrZShjb2FsZXNjZWRDaGFsbGVuZ2VJ
RCk7Ci0gICAgICAgIEFTU0VSVCghY2hhbGxlbmdlLmNoYWxsZW5nZS5pc051bGwoKSk7Ci0gICAg
ICAgIGNoYWxsZW5nZS5jb21wbGV0aW9uSGFuZGxlcihkaXNwb3NpdGlvbiwgY3JlZGVudGlhbCk7
CisgICAgICAgIEFTU0VSVCghY2hhbGxlbmdlLT5jaGFsbGVuZ2UuaXNOdWxsKCkpOworICAgICAg
ICBjaGFsbGVuZ2UtPmNvbXBsZXRpb25IYW5kbGVyKGRpc3Bvc2l0aW9uLCBjcmVkZW50aWFsKTsK
ICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0
aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVu
dGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmgKaW5kZXggYzYyMDIwMTJiMDU1NWMwYzE3
M2QxYjlhMDRmMDFhODYxOGIyOTM3OC4uMjA3YmQyNzU5NjZkNDBmZTk1YjU4YTUwN2NlNWQ3NzY5
MDlmNTVhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24v
QXV0aGVudGljYXRpb25NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVu
dGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmgKQEAgLTc5LDYgKzc5LDEyIEBAIHB1Ymxp
YzoKIAogcHJpdmF0ZToKICAgICBzdHJ1Y3QgQ2hhbGxlbmdlIHsKKyAgICAgICAgV1RGX01BS0Vf
U1RSVUNUX0ZBU1RfQUxMT0NBVEVEOworICAgICAgICBDaGFsbGVuZ2UoV2ViUGFnZVByb3h5SWRl
bnRpZmllciBwYWdlSUQsIGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBj
aGFsbGVuZ2UsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIp
CisgICAgICAgICAgICA6IHBhZ2VJRChwYWdlSUQpCisgICAgICAgICAgICAsIGNoYWxsZW5nZShj
aGFsbGVuZ2UpCisgICAgICAgICAgICAsIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKSB7IH0KKyAgICAgICAgCiAgICAgICAgIFdlYlBhZ2VQcm94eUlkZW50aWZp
ZXIgcGFnZUlEOwogICAgICAgICBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSBjaGFs
bGVuZ2U7CiAgICAgICAgIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyIGNvbXBsZXRpb25IYW5k
bGVyOwpAQCAtOTIsMTQgKzk4LDE0IEBAIHByaXZhdGU6CiAgICAgLy8gSVBDOjpNZXNzYWdlUmVj
ZWl2ZXIKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6
RGVjb2RlciYpIG92ZXJyaWRlOwogCi0gICAgdWludDY0X3QgYWRkQ2hhbGxlbmdlVG9DaGFsbGVu
Z2VNYXAoQ2hhbGxlbmdlJiYpOworICAgIHVpbnQ2NF90IGFkZENoYWxsZW5nZVRvQ2hhbGxlbmdl
TWFwKHN0ZDo6dW5pcXVlX3B0cjxDaGFsbGVuZ2U+JiYpOwogICAgIGJvb2wgc2hvdWxkQ29hbGVz
Y2VDaGFsbGVuZ2UoV2ViUGFnZVByb3h5SWRlbnRpZmllciwgdWludDY0X3QgY2hhbGxlbmdlSUQs
IGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgY29uc3Q7CiAKICAgICBW
ZWN0b3I8dWludDY0X3Q+IGNvYWxlc2NlQ2hhbGxlbmdlc01hdGNoaW5nKHVpbnQ2NF90IGNoYWxs
ZW5nZUlEKSBjb25zdDsKIAogICAgIE5ldHdvcmtQcm9jZXNzJiBtX3Byb2Nlc3M7CiAKLSAgICBI
YXNoTWFwPHVpbnQ2NF90LCBDaGFsbGVuZ2U+IG1fY2hhbGxlbmdlczsKKyAgICBIYXNoTWFwPHVp
bnQ2NF90LCBzdGQ6OnVuaXF1ZV9wdHI8Q2hhbGxlbmdlPj4gbV9jaGFsbGVuZ2VzOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2VydmVyLmNw
cAppbmRleCBkZTQ5NWNhOTc3ZGQ2NmQyYzFmMzVjZTMwYjI4ZTcxYmQ3ZjkxMDgxLi5mOWI1YzJj
MjgyZTg3OWNjMDE4NTE4Y2JiY2IyZjQxZGM3ZGZhYTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJj
ZUxvYWRPYnNlcnZlci5jcHAKQEAgLTkzLDggKzkzLDggQEAgUmVzb3VyY2VMb2FkU3RhdGlzdGlj
cyYgV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OmVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJl
Z2kKIHsKICAgICBSRUxFQVNFX0FTU0VSVCghaXNFcGhlbWVyYWwoKSk7CiAKLSAgICByZXR1cm4g
bV9yZXNvdXJjZVN0YXRpc3RpY3NNYXAuZW5zdXJlKGRvbWFpbiwgWyZkb21haW5dIHsKLSAgICAg
ICAgcmV0dXJuIFJlc291cmNlTG9hZFN0YXRpc3RpY3MoZG9tYWluKTsKKyAgICByZXR1cm4gKm1f
cmVzb3VyY2VTdGF0aXN0aWNzTWFwLmVuc3VyZShkb21haW4sIFsmZG9tYWluXSB7CisgICAgICAg
IHJldHVybiBtYWtlVW5pcXVlPFJlc291cmNlTG9hZFN0YXRpc3RpY3M+KGRvbWFpbik7CiAgICAg
fSkuaXRlcmF0b3ItPnZhbHVlOwogfQogCkBAIC0xMTgsMTEgKzExOCwxMSBAQCB2b2lkIFdlYlJl
c291cmNlTG9hZE9ic2VydmVyOjp1cGRhdGVDZW50cmFsU3RhdGlzdGljc1N0b3JlKENvbXBsZXRp
b25IYW5kbGVyPHZvaQogCiBTdHJpbmcgV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnN0YXRpc3Rp
Y3NGb3JVUkwoY29uc3QgVVJMJiB1cmwpCiB7Ci0gICAgYXV0byBpdGVyID0gbV9yZXNvdXJjZVN0
YXRpc3RpY3NNYXAuZmluZChSZWdpc3RyYWJsZURvbWFpbiB7IHVybCB9KTsKLSAgICBpZiAoaXRl
ciA9PSBtX3Jlc291cmNlU3RhdGlzdGljc01hcC5lbmQoKSkKKyAgICBhdXRvKiBzdGF0aXN0aWNz
ID0gbV9yZXNvdXJjZVN0YXRpc3RpY3NNYXAuZ2V0KFJlZ2lzdHJhYmxlRG9tYWluIHsgdXJsIH0p
OworICAgIGlmICghc3RhdGlzdGljcykKICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAK
LSAgICByZXR1cm4gbWFrZVN0cmluZygiU3RhdGlzdGljcyBmb3IgIiwgdXJsLmhvc3QoKS50b1N0
cmluZygpLCAiOlxuIiwgaXRlci0+dmFsdWUudG9TdHJpbmcoKSk7CisgICAgcmV0dXJuIG1ha2VT
dHJpbmcoIlN0YXRpc3RpY3MgZm9yICIsIHVybC5ob3N0KCkudG9TdHJpbmcoKSwgIjpcbiIsIHN0
YXRpc3RpY3MtPnRvU3RyaW5nKCkpOwogfQogCiBWZWN0b3I8UmVzb3VyY2VMb2FkU3RhdGlzdGlj
cz4gV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnRha2VTdGF0aXN0aWNzKCkKQEAgLTEzMCw3ICsx
MzAsNyBAQCBWZWN0b3I8UmVzb3VyY2VMb2FkU3RhdGlzdGljcz4gV2ViUmVzb3VyY2VMb2FkT2Jz
ZXJ2ZXI6OnRha2VTdGF0aXN0aWNzKCkKICAgICBWZWN0b3I8UmVzb3VyY2VMb2FkU3RhdGlzdGlj
cz4gc3RhdGlzdGljczsKICAgICBzdGF0aXN0aWNzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkobV9y
ZXNvdXJjZVN0YXRpc3RpY3NNYXAuc2l6ZSgpKTsKICAgICBmb3IgKGF1dG8mIHN0YXRpc3RpYyA6
IG1fcmVzb3VyY2VTdGF0aXN0aWNzTWFwLnZhbHVlcygpKQotICAgICAgICBzdGF0aXN0aWNzLnVu
Y2hlY2tlZEFwcGVuZChXVEZNb3ZlKHN0YXRpc3RpYykpOworICAgICAgICBzdGF0aXN0aWNzLnVu
Y2hlY2tlZEFwcGVuZChSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKFdURk1vdmUoKnN0YXRpc3RpYykp
KTsKICAgICBtX3Jlc291cmNlU3RhdGlzdGljc01hcC5jbGVhcigpOwogICAgIHJldHVybiBzdGF0
aXN0aWNzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaAppbmRleCBiZjM3OGU3
MmY2MjY1MTg4M2FjNjAyMzdhMzNiMWQwOTEzODcwN2E4Li42OGM5NjM1NDEzZWYyYjhlYWQ4OTdj
M2NmMTVkZmIxYTQ2OTM1ZjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaApA
QCAtODEsNyArODEsNyBAQCBwcml2YXRlOgogCiAgICAgV2ViQ29yZTo6UmVzb3VyY2VMb2FkU3Rh
dGlzdGljczo6SXNFcGhlbWVyYWwgbV9pc0VwaGVtZXJhbCB7IFdlYkNvcmU6OlJlc291cmNlTG9h
ZFN0YXRpc3RpY3M6OklzRXBoZW1lcmFsOjpObyB9OwogCi0gICAgSGFzaE1hcDxXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiwgV2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljcz4gbV9yZXNv
dXJjZVN0YXRpc3RpY3NNYXA7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3M+PiBtX3Jl
c291cmNlU3RhdGlzdGljc01hcDsKICAgICBIYXNoTWFwPFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluLCBXVEY6OldhbGxUaW1lPiBtX2xhc3RSZXBvcnRlZFVzZXJJbnRlcmFjdGlvbk1hcDsKIAog
ICAgIFdlYkNvcmU6OlRpbWVyIG1fbm90aWZpY2F0aW9uVGltZXI7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>