<?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>231580</bug_id>
          
          <creation_ts>2021-10-12 08:38:49 -0700</creation_ts>
          <short_desc>Allow direct construction of WeakPtr without makeWeakPtr()</short_desc>
          <delta_ts>2021-10-13 09:11:32 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Template Framework</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>
          
          <blocked>231615</blocked>
    
    <blocked>231651</blocked>
    
    <blocked>231679</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>achristensen</cc>
    
    <cc>andresg_22</cc>
    
    <cc>apinheiro</cc>
    
    <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cfleizach</cc>
    
    <cc>cgarcia</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>hta</cc>
    
    <cc>japhet</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>joepeck</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mifenton</cc>
    
    <cc>pangle</cc>
    
    <cc>pdr</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>samuel_white</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>tommyw</cc>
    
    <cc>vjaquez</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1803130</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-12 08:38:49 -0700</bug_when>
    <thetext>Allow direct construction of WeakPtr without makeWeakPtr(), and deprecate makeWeakPtr().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803169</commentid>
    <comment_count>1</comment_count>
      <attachid>440946</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-12 09:24:31 -0700</bug_when>
    <thetext>Created attachment 440946
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803331</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-12 13:09:28 -0700</bug_when>
    <thetext>Committed r284009 (242851@main): &lt;https://commits.webkit.org/242851@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 440946.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803332</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-12 13:10:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/84162866&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440946</attachid>
            <date>2021-10-12 09:24:31 -0700</date>
            <delta_ts>2021-10-12 13:09:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231580-20211012092430.patch</filename>
            <type>text/plain</type>
            <size>230349</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzOTgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDkyNmM4MWZlZmFmNjQwOGI2MTBhZDI2
MTZiNjM2N2VlMzc5YWNlNTUuLjdkYmQwMzcxODNlMzhmOGI5ZjY1ZWZkZDA1NjMzMWY1NjcwZjBh
YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMTAtMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBBbGxvdyBkaXJlY3QgY29uc3RydWN0aW9uIG9mIFdlYWtQ
dHIgd2l0aG91dCBtYWtlV2Vha1B0cigpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzE1ODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBbGxvdyBkaXJlY3QgY29uc3RydWN0aW9uIG9mIFdlYWtQdHIgd2l0
aG91dCBtYWtlV2Vha1B0cigpLCBhbmQgZGVwcmVjYXRlIG1ha2VXZWFrUHRyKCkuCisKKyAgICAg
ICAgKiB3dGYvV2Vha1B0ci5oOgorICAgICAgICAoV1RGOjpXZWFrUHRyOjpXZWFrUHRyKToKKyAg
ICAgICAgKFdURjo6V2Vha1B0cjo6aW1wbEZvck9iamVjdCk6CisgICAgICAgIChXVEY6Om1ha2VX
ZWFrUHRyKToKKwogMjAyMS0xMC0xMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3
ZWJraXQub3JnPgogCiAgICAgICAgIE9ubHkgbWFyayBuZWVkZWQgSlNPTkltcGw6Ok9iamVjdEJh
c2UgZnVuY3Rpb25zIHdpdGggV1RGX0VYUE9SVF9QUklWQVRFCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjhmNDU5
YTU5N2FmYWI2NWI1MDE5M2VmYTFiNzhiOTE2MGM3MjdkNy4uZTJkNDFhY2FmNTU0ZWJhN2MyMmY1
M2VhOWZmNDIyOTA1YWIyYmY5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3NiBAQAorMjAyMS0x
MC0xMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFsbG93IGRp
cmVjdCBjb25zdHJ1Y3Rpb24gb2YgV2Vha1B0ciB3aXRob3V0IG1ha2VXZWFrUHRyKCkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTU4MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFsbG93IGRpcmVjdCBj
b25zdHJ1Y3Rpb24gb2YgV2Vha1B0ciB3aXRob3V0IG1ha2VXZWFrUHRyKCksIGFuZCBkZXByZWNh
dGUgbWFrZVdlYWtQdHIoKS4KKworICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvUGF5bWVudENv
b3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRDb29yZGluYXRvcjo6Y2Fu
TWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmQpOgorICAgICAgICAoV2ViQ29yZTo6UGF5bWVudENv
b3JkaW5hdG9yOjpnZXRTZXR1cEZlYXR1cmVzKToKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRD
b29yZGluYXRvcjo6YmVnaW5BcHBsZVBheVNldHVwKToKKyAgICAgICAgKiBNb2R1bGVzL2FzeW5j
LWNsaXBib2FyZC9DbGlwYm9hcmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkOjpD
bGlwYm9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkOjpJdGVtV3JpdGVyOjpJdGVt
V3JpdGVyKToKKyAgICAgICAgKiBNb2R1bGVzL2FzeW5jLWNsaXBib2FyZC9DbGlwYm9hcmRJdGVt
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNsaXBib2FyZEl0ZW06OkNsaXBib2FyZEl0ZW0pOgor
ICAgICAgICAqIE1vZHVsZXMvYXN5bmMtY2xpcGJvYXJkL0NsaXBib2FyZEl0ZW1CaW5kaW5nc0Rh
dGFTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkSXRlbUJpbmRpbmdzRGF0
YVNvdXJjZTo6Y29sbGVjdERhdGFGb3JXcml0aW5nKToKKyAgICAgICAgKiBNb2R1bGVzL2NvbnRh
Y3QtcGlja2VyL0NvbnRhY3RzTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250YWN0
c01hbmFnZXI6OkNvbnRhY3RzTWFuYWdlcik6CisgICAgICAgICogTW9kdWxlcy9jcmVkZW50aWFs
bWFuYWdlbWVudC9OYXZpZ2F0b3JDcmVkZW50aWFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpO
YXZpZ2F0b3JDcmVkZW50aWFsczo6Y3JlZGVudGlhbHMpOgorICAgICAgICAqIE1vZHVsZXMvZW5j
cnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
S2V5U2Vzc2lvbjo6Z2VuZXJhdGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5
U2Vzc2lvbjo6bG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVNlc3Npb246OnVwZGF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVNlc3Npb246OmNsb3NlKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhS2V5U2Vzc2lvbjo6cmVtb3ZlKToKKyAgICAgICAgKiBNb2R1bGVzL2Vu
Y3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtQWNjZXNzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhS2V5U3lzdGVtQWNjZXNzOjpjcmVhdGVNZWRpYUtleXMpOgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
RGV2aWNlczo6bGlzdGVuRm9yRGV2aWNlQ2hhbmdlcyk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4
ci9XZWJYUlNlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJTZXNzaW9uOjpyZXF1
ZXN0UmVmZXJlbmNlU3BhY2UpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpjdXJyZW50TW9kYWxOb2Rl
KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9uOjpBY2Nlc3Np
YmlsaXR5TGlzdEJveE9wdGlvbik6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5TWVudUxpc3RPcHRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1l
bnVMaXN0T3B0aW9uOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb24pOgorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNldFJlbmRl
cmVyKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTVkdSb290LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlTVkdSb290OjpzZXRQYXJlbnQpOgorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXc6OkFjY2Vzc2liaWxpdHlTY3JvbGxW
aWV3KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlSb290QXRz
cGkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJvb3RBdHNwaTo6QWNjZXNz
aWJpbGl0eVJvb3RBdHNwaSk6CisgICAgICAgICogYW5pbWF0aW9uL0FuaW1hdGlvbkVmZmVjdC5o
OgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uRWZmZWN0OjpzZXRBbmltYXRpb24pOgorICAg
ICAgICAqIGNzcy90eXBlZG9tL0NTU1N0eWxlSW1hZ2VWYWx1ZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDU1NTdHlsZUltYWdlVmFsdWU6OkNTU1N0eWxlSW1hZ2VWYWx1ZSk6CisgICAgICAgICog
ZG9tL0Fib3J0U2lnbmFsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFib3J0U2lnbmFsOjpzaWdu
YWxGb2xsb3cpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6ZGlkTG9nTWVzc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
ZGlkUmVqZWN0U3luY1hIUkR1cmluZ1BhZ2VEaXNtaXNzYWwpOgorICAgICAgICAqIGRvbS9Eb2N1
bWVudFN0b3JhZ2VBY2Nlc3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRTdG9yYWdl
QWNjZXNzOjpoYXNTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50U3Rv
cmFnZUFjY2Vzczo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnRTdG9yYWdlQWNjZXNzOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc1F1aXJrKToKKyAgICAgICAg
KiBkb20vRXZlbnRUYXJnZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRUYXJnZXQ6OmFk
ZEV2ZW50TGlzdGVuZXIpOgorICAgICAgICAqIGRvbS9GdWxsc2NyZWVuTWFuYWdlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGdWxsc2NyZWVuTWFuYWdlcjo6cmVxdWVzdEZ1bGxzY3JlZW5Gb3JF
bGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZ1bGxzY3JlZW5NYW5hZ2VyOjpleGl0RnVsbHNj
cmVlbik6CisgICAgICAgICogZWRpdGluZy9UZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6c2NoZWR1bGVP
YnNlcnZhdGlvblVwZGF0ZSk6CisgICAgICAgICogaHRtbC9GaWxlSW5wdXRUeXBlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZpbGVJbnB1dFR5cGU6OmZpbGVzQ2hvc2VuKToKKyAgICAgICAgKiBo
dG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZhbGlkYXRpb25N
ZXNzYWdlOjpidWlsZEJ1YmJsZVRyZWUpOgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29u
dHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6dXBkYXRlU2l6ZXMpOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpldmFsdWF0ZU9yUXVl
dWVFeHByZXNzaW9uKToKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZh
c0FnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNhbnZhc0FnZW50OjpyZWNv
cmRBY3Rpb24pOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpjb21wdXRlSXNE
b25lKToKKyAgICAgICAgKiBwYWdlL2lvcy9Db250ZW50Q2hhbmdlT2JzZXJ2ZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q29udGVudENoYW5nZU9ic2VydmVyOjpkaWRGaW5pc2hUcmFuc2l0aW9u
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9EZWZlcnJhYmxlVGFzay5oOgorICAgICAgICAoV2ViQ29y
ZTo6TWFpblRocmVhZERlZmVycmFibGVUYXNrOjpzY2hlZHVsZVRhc2spOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL21hYy9BdWRpb0hhcmR3YXJlTGlzdGVuZXJNYWMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9IYXJkd2FyZUxpc3RlbmVyTWFjOjpBdWRpb0hhcmR3YXJlTGlzdGVuZXJN
YWMpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1Bvd2VyU291cmNlTm90aWZpZXIubW06Cisg
ICAgICAgIChXZWJDb3JlOjpQb3dlclNvdXJjZU5vdGlmaWVyOjpQb3dlclNvdXJjZU5vdGlmaWVy
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9SZW1vdGVDb21tYW5kTGlzdGVuZXJDb2NvYS5t
bToKKyAgICAgICAgKFdlYkNvcmU6OlJlbW90ZUNvbW1hbmRMaXN0ZW5lckNvY29hOjpSZW1vdGVD
b21tYW5kTGlzdGVuZXJDb2NvYSk6CisgICAgICAgICogcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEv
Q0RNUHJpdmF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDRE1Qcml2YXRlOjpkb1N1cHBvcnRl
ZENvbmZpZ3VyYXRpb25TdGVwKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9j
bGVhcmtleS9DRE1DbGVhcktleS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZVNl
c3Npb25DbGVhcktleTo6cmVxdWVzdExpY2Vuc2UpOgorICAgICAgICAoV2ViQ29yZTo6Q0RNSW5z
dGFuY2VTZXNzaW9uQ2xlYXJLZXk6OnVwZGF0ZUxpY2Vuc2UpOgorICAgICAgICAoV2ViQ29yZTo6
Q0RNSW5zdGFuY2VTZXNzaW9uQ2xlYXJLZXk6OmxvYWRTZXNzaW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkNETUluc3RhbmNlU2Vzc2lvbkNsZWFyS2V5OjpjbG9zZVNlc3Npb24pOgorICAgICAgICAo
V2ViQ29yZTo6Q0RNSW5zdGFuY2VTZXNzaW9uQ2xlYXJLZXk6OnJlbW92ZVNlc3Npb25EYXRhKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbjo6c2V0TmVlZHNSZW5kZXJpbmdNb2RlQ2hhbmdlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnNjaGVkdWxlTWFpblRocmVh
ZE5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb246OmRpc3BhdGNoTm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2Jq
Qy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFt
aW5nQVZGT2JqQzo6dXBkYXRlTGljZW5zZSk6CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5j
ZVNlc3Npb25GYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OmRpZFByb3ZpZGVSZXF1ZXN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZGT2Jq
Qzo6ZGlkUHJvdmlkZVJlcXVlc3RzKToKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlU2Vz
c2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6ZGlkUHJvdmlkZVJlbmV3aW5nUmVxdWVzdCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTG9jYWxTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXIubW06CisgICAgICAgIChXZWJDb3JlOjpMb2NhbFNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllcjo6cmVxdWVzdE5vdGlmaWNhdGlvbldoZW5SZWFkeUZvclZpZGVvRGF0
YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZVZpZGVvTGF5ZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZQ
bGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6Y2hlY2tQbGF5YWJpbGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDOjpiZWdpbkxvYWRpbmdNZXRhZGF0YSk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZWVrVG9UaW1lKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNl
dFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMu
bW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akM6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnBsYXkpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwYXVzZSk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6
OnBsYXlBdEhvc3RUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQzo6cGF1c2VBdEhvc3RUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6ZHVyYXRpb25DaGFuZ2VkKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNjaGVkdWxlRGVmZXJyZWRUYXNrKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDOjpkaWRQYXJzZUluaXRpYWxpemF0aW9uRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6dHJhY2tEaWRDaGFuZ2VFbmFibGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpzZXRDRE1TZXNzaW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpmbHVzaFZpZGVvKToK
KyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjplbnF1ZXVlU2Ft
cGxlKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpub3Rp
ZnlDbGllbnRXaGVuUmVhZHlGb3JNb3JlU2FtcGxlcyk6CisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6c2V0VmlkZW9MYXllcik6CisgICAgICAgIChXZWJDb3Jl
OjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6c2V0RGVjb21wcmVzc2lvblNlc3Npb24pOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1dlYkNvcmVBVkZS
ZXNvdXJjZUxvYWRlci5tbToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFVUkxSZXNvdXJjZU1lZGlh
TG9hZGVyOjpEYXRhVVJMUmVzb3VyY2VNZWRpYUxvYWRlcik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvVGV4dFRyYWNrUmVwcmVzZW50YXRpb25Db2NvYS5tbToKKyAgICAgICAg
KFdlYkNvcmU6OlRleHRUcmFja1JlcHJlc2VudGF0aW9uQ29jb2E6OmJvdW5kc0NoYW5nZWQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyOjpoYW5kbGVNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lcjo6aW52YWxpZGF0ZUNhY2hlZFBvc2l0aW9uT25OZXh0SXRlcmF0aW9uIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dHJpZ2dl
clJlcGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
Ojppbml0aWFsaXphdGlvbkRhdGFFbmNvdW50ZXJlZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVk
aWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmZsdXNoQ29tcHJlc3Nl
ZFNhbXBsZUJ1ZmZlcnMpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9MaWJXZWJSVENEVE1GU2VuZGVyQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaWJX
ZWJSVENEVE1GU2VuZGVyQmFja2VuZDo6T25Ub25lQ2hhbmdlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvQ0dEaXNwbGF5U3RyZWFtQ2FwdHVyZVNvdXJjZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDR0Rpc3BsYXlTdHJlYW1DYXB0dXJlU291cmNlOjpmcmFtZUF2YWlsYWJs
ZUhhbmRsZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTWVkaWFQbGF5YmFja1RhcmdldFBp
Y2tlck1vY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldFBpY2tl
ck1vY2s6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jazo6c3RhcnRpbmdNb25pdG9yaW5nUGxheWJhY2tUYXJn
ZXRzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNb2NrOjpz
ZXRTdGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jb2NvYS9Db29raWVTdG9yYWdl
T2JzZXJ2ZXIubW06CisgICAgICAgIChXZWJDb3JlOjpDb29raWVTdG9yYWdlT2JzZXJ2ZXI6OmNv
b2tpZXNEaWRDaGFuZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY29jb2EvTmV0d29y
a1N0b3JhZ2VTZXNzaW9uQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFn
ZVNlc3Npb246OnJlZ2lzdGVyQ29va2llQ2hhbmdlTGlzdGVuZXJzSWZOZWNlc3NhcnkpOgorICAg
ICAgICAqIHBsYXRmb3JtL3hyL29wZW54ci9QbGF0Zm9ybVhST3BlblhSLmNwcDoKKyAgICAgICAg
KFBsYXRmb3JtWFI6Ok9wZW5YUkRldmljZTo6ZW5kU2Vzc2lvbik6CisgICAgICAgIChQbGF0Zm9y
bVhSOjpPcGVuWFJEZXZpY2U6OnVwZGF0ZUludGVyYWN0aW9uUHJvZmlsZSk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJXaWRn
ZXQ6OnNldFdpZGdldEdlb21ldHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcldpZGdldDo6
c2V0V2lkZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcldpZGdldDo6dXBkYXRlV2lkZ2V0
UG9zaXRpb24pOgorICAgICAgICAqIHRlc3RpbmcvV2ViRmFrZVhSRGV2aWNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNpbXVsYXRlZFhSRGV2aWNlOjppbml0aWFsaXplVHJhY2tpbmdBbmRSZW5k
ZXJpbmcpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyUnVuTG9vcC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXb3JrZXJNYWluUnVuTG9vcDo6cG9zdFRhc2tBbmRUZXJtaW5hdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2VyTWFpblJ1bkxvb3A6OnBvc3RUYXNrRm9yTW9kZSk6CisKIDIwMjEt
MTAtMTIgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtj
c3MtdWldIEZpeCBpbnRlcnBvbGF0aW9uIG9mIGFjY2VudC1jb2xvcgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cK
aW5kZXggZmQ5YjExNDhmY2Y1ZTgwZjE4ZTg4MDQwMzlkNDIzN2U5MDE5ZGQxZS4uMjNmZTU3NDg2
MGU5OWQ1ZjMxMjlmZDY5MTMxMjE4ZTdlZjg1NTM1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMjEtMTAtMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
KworICAgICAgICBBbGxvdyBkaXJlY3QgY29uc3RydWN0aW9uIG9mIFdlYWtQdHIgd2l0aG91dCBt
YWtlV2Vha1B0cigpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzE1ODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBbGxvdyBkaXJlY3QgY29uc3RydWN0aW9uIG9mIFdlYWtQdHIgd2l0aG91dCBtYWtlV2Vh
a1B0cigpLCBhbmQgZGVwcmVjYXRlIG1ha2VXZWFrUHRyKCkuCisKKyAgICAgICAgKiBwYWwvc3lz
dGVtL21hYy9TeXN0ZW1TbGVlcExpc3RlbmVyTWFjLm1tOgorICAgICAgICAoUEFMOjpTeXN0ZW1T
bGVlcExpc3RlbmVyTWFjOjpTeXN0ZW1TbGVlcExpc3RlbmVyTWFjKToKKwogMjAyMS0xMC0wOCAg
RGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU11bR1BVIFBy
b2Nlc3NdIHN1cHBvcnQgYDxhdHRhY2htZW50PmAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggM2NhMTZhNTZiODEzMjdk
ODcwNDNmNzk1ZTE1NTk2MzhmYmE3OWQwZi4uZDBlMDUxMGY3Y2U0NzNlZWMxNTAwMWYwZDAzYjA0
NjU0ZDk5Y2ZkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMTAgQEAKKzIwMjEtMTAtMTIgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBBbGxvdyBkaXJlY3QgY29uc3Ry
dWN0aW9uIG9mIFdlYWtQdHIgd2l0aG91dCBtYWtlV2Vha1B0cigpCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE1ODAKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbGxvdyBkaXJlY3QgY29uc3RydWN0aW9u
IG9mIFdlYWtQdHIgd2l0aG91dCBtYWtlV2Vha1B0cigpLCBhbmQgZGVwcmVjYXRlIG1ha2VXZWFr
UHRyKCkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnVwZGF0ZUNvb2tpZUJsb2NraW5nKToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVt
b3ZlRGF0YVJlY29yZHMpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6OnByb2Nlc3NTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHMpOgorICAgICAgICAoV2ViS2l0
OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmdyYW5kZmF0aGVyRXhpc3RpbmdXZWJzaXRl
RGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2No
ZWR1bGVTdGF0aXN0aWNzUHJvY2Vzc2luZ1JlcXVlc3RJZk5lY2Vzc2FyeSk6CisgICAgICAgIChX
ZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6ZGVidWdCcm9hZGNhc3RDb25zb2xl
TWVzc2FnZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWQ6OmNhbmNlbCk6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Rh
dGFUYXNrOjpzY2hlZHVsZUZhaWx1cmUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtMb2FkQ2hlY2tlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtMb2FkQ2hlY2tlcjo6
Y2hlY2tSZXF1ZXN0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5j
cHA6CisgICAgICAgIChXZWJLaXQ6Om1fbWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnkpOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c3VzcGVuZElEQlNlcnZlcnMpOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c3RvcmFnZVF1b3RhTWFuYWdlcik6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydCk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtSZXNvdXJjZUxvYWRlcjo6cmV0cmlldmVDYWNoZUVudHJ5KToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydE5ldHdvcmtMb2FkKToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtTZXNzaW9uOjpoYW5kbGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbnZlcnNpb24pOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGlu
Z0xvYWQ6OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpQaW5nTG9hZDo6ZGlkUmVjZWl2
ZUNoYWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6OlBpbmdMb2FkOjpkaWRSZWNlaXZlUmVzcG9u
c2UpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1By
aXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6c3RvcmVVbmF0dHJpYnV0ZWQpOgorICAgICAgICAo
V2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmdldFRva2VuUHVibGljS2V5
KToKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpnZXRT
aWduZWRVbmxpbmthYmxlVG9rZW4pOgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXI6OmF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlcjo6ZmlyZUNvbnZlcnNpb25SZXF1ZXN0KToKKyAgICAgICAgKFdl
YktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpmaXJlQ29udmVyc2lvblJlcXVl
c3RJbXBsKToKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2Vy
OjpmaXJlUGVuZGluZ0F0dHJpYnV0aW9uUmVxdWVzdHMpOgorICAgICAgICAoV2ViS2l0OjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmRlc3Ryb3lTdG9yZUZvclRlc3RpbmcpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlclNvZnRVcGRh
dGVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyU29mdFVwZGF0ZUxv
YWRlcjo6U2VydmljZVdvcmtlclNvZnRVcGRhdGVMb2FkZXIpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL1dlYlN0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpMb2NhbFN0b3JhZ2VEYXRhYmFzZTo6c3RhcnRUcmFuc2FjdGlvbklmTmVjZXNzYXJ5KToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxv
YWRNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpTcGVjdWxhdGl2
ZUxvYWRNYW5hZ2VyOjpyZWdpc3RlckxvYWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2Fj
aGU6OlNwZWN1bGF0aXZlTG9hZE1hbmFnZXI6OnByZWxvYWRFbnRyeSk6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW06CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtEYXRhVGFza0NvY29hOjp3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbik6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvaW9zL05ldHdvcmtQcm9jZXNzSU9TLm1tOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMpOgorICAg
ICAgICAqIFNoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpzaG93UGF5bWVudFVJ
KToKKyAgICAgICAgKiBTaGFyZWQvQXBwbGVQYXkvaW9zL1dlYlBheW1lbnRDb29yZGluYXRvclBy
b3h5SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6
cGxhdGZvcm1TaG93UGF5bWVudFVJKToKKyAgICAgICAgKiBTaGFyZWQvQXBwbGVQYXkvbWFjL1dl
YlBheW1lbnRDb29yZGluYXRvclByb3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYXlt
ZW50Q29vcmRpbmF0b3JQcm94eTo6cGxhdGZvcm1TaG93UGF5bWVudFVJKToKKyAgICAgICAgKiBT
aGFyZWQvQXV0aGVudGljYXRpb24vY29jb2EvQXV0aGVudGljYXRpb25NYW5hZ2VyQ29jb2EubW06
CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6aW5pdGlhbGl6ZUNvbm5l
Y3Rpb24pOgorICAgICAgICAqIFNoYXJlZC9XZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXI6OmRpZEZpbmlzaExhc3RU
cmFuc2FjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL0FwcGxpY2F0aW9uU3RhdGVUcmFja2Vy
Lm1tOgorICAgICAgICAoV2ViS2l0OjpBcHBsaWNhdGlvblN0YXRlVHJhY2tlcjo6QXBwbGljYXRp
b25TdGF0ZVRyYWNrZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXhpbGlhcnlQcm9jZXNzUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpBdXhpbGlhcnlQcm9jZXNzUHJveHk6OmNoZWNrRm9y
UmVzcG9uc2l2ZW5lc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Eb3dubG9hZFByb3h5
TWFwQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkUHJveHlNYXA6OnBsYXRmb3Jt
Q3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvTW9kZWxFbGVtZW50Q29udHJvbGxl
ckNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpNb2RlbEVsZW1lbnRDb250cm9sbGVyOjptb2Rl
bEVsZW1lbnREaWRDcmVhdGVQcmV2aWV3KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvU09B
dXRob3JpemF0aW9uL1NPQXV0aG9yaXphdGlvblNlc3Npb24ubW06CisgICAgICAgIChXZWJLaXQ6
OlNPQXV0aG9yaXphdGlvblNlc3Npb246OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6U09BdXRo
b3JpemF0aW9uU2Vzc2lvbjo6Y29udGludWVTdGFydEFmdGVyR2V0QXV0aG9yaXphdGlvbkhpbnRz
KToKKyAgICAgICAgKFdlYktpdDo6U09BdXRob3JpemF0aW9uU2Vzc2lvbjo6Y29tcGxldGUpOgor
ICAgICAgICAoV2ViS2l0OjpTT0F1dGhvcml6YXRpb25TZXNzaW9uOjpwcmVzZW50Vmlld0NvbnRy
b2xsZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzY2hlZHVsZUFjdGl2aXR5U3RhdGVVcGRh
dGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldFVwSGlnaGxpZ2h0c09ic2Vy
dmVyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW06
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6c2VuZEF1ZGlvQ29tcG9uZW50UmVn
aXN0cmF0aW9ucyk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2hvd1NhZmVCcm93c2luZ1dhcm5pbmcpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dXBkYXRlV2luZG93QW5kVmlld0ZyYW1lcyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzY2hlZHVsZVNldFRvcENvbnRlbnRJbnNl
dERpc3BhdGNoKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnZpZXdEaWRNb3ZlVG9X
aW5kb3cpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cHJlcGFyZUZvck1vdmVUb1dp
bmRvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp2YWxpZGF0ZVVzZXJJbnRlcmZh
Y2VJdGVtKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnJlcXVlc3RDYW5kaWRhdGVz
Rm9yU2VsZWN0aW9uSWZOZWVkZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aW50
ZXJwcmV0S2V5RXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Zmlyc3RSZWN0
Rm9yQ2hhcmFjdGVyUmFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cGVyZm9y
bUtleUVxdWl2YWxlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6a2V5VXApOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6a2V5RG93bik6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdJbXBsOjpmbGFnc0NoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6bmF0aXZlTW91c2VFdmVudEhhbmRsZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6aGFuZGxlQ29udGV4dE1lbnVUcmFuc2xhdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL0dQ
VS9HUFVQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzUHJveHk6
OmdldEdQVVByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWEvY29j
b2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eUNvY29hLm1tOgorICAgICAgICAo
V2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpiZWdpblJvdXRpbmdB
cmJpdHJhdGlvbldpdGhDYXRlZ29yeSk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJv
eHk6OmdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1By
b2Nlc3NUaHJvdHRsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzVGhyb3R0bGVyOjpz
ZXRBc3NlcnRpb25UeXBlKToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc1Rocm90dGxlcjo6c2Vu
ZFByZXBhcmVUb1N1c3BlbmRJUEMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25p
dGlvblBlcm1pc3Npb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2du
aXRpb25QZXJtaXNzaW9uTWFuYWdlcjo6cmVxdWVzdFVzZXJQZXJtaXNzaW9uKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6
Z3JhbnRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHk6OmdldFVzZXJNZWRpYVBlcm1pc3Npb25JbmZvKToKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmVudW1lcmF0ZU1l
ZGlhRGV2aWNlc0ZvckZyYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUHJvY2Vz
c01hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcjo6
dXBkYXRlQ2FwdHVyZURldmljZXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9BdXRoZW50aWNhdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRvcjo6
aGFuZGxlUmVxdWVzdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1
dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRvck1h
bmFnZXI6OmNsZWFyU3RhdGVBc3luYyk6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JN
YW5hZ2VyOjpkb3duZ3JhZGUpOgorICAgICAgICAoV2ViS2l0OjpBdXRoZW50aWNhdG9yTWFuYWdl
cjo6cmVxdWVzdFBpbik6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpy
dW5QYW5lbCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRp
Y2F0b3JUcmFuc3BvcnRTZXJ2aWNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRv
clRyYW5zcG9ydFNlcnZpY2U6OnN0YXJ0RGlzY292ZXJ5KToKKyAgICAgICAgKFdlYktpdDo6QXV0
aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2U6OnJlc3RhcnREaXNjb3ZlcnkpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW06
CisgICAgICAgIChXZWJLaXQ6OkxvY2FsQXV0aGVudGljYXRvcjo6bWFrZUNyZWRlbnRpYWwpOgor
ICAgICAgICAoV2ViS2l0OjpMb2NhbEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlTWFrZUNyZWRlbnRp
YWxBZnRlckRlY2lkZVBvbGljeSk6CisgICAgICAgIChXZWJLaXQ6OkxvY2FsQXV0aGVudGljYXRv
cjo6Y29udGludWVNYWtlQ3JlZGVudGlhbEFmdGVyUmVjZWl2aW5nTEFDb250ZXh0KToKKyAgICAg
ICAgKFdlYktpdDo6TG9jYWxBdXRoZW50aWNhdG9yOjpjb250aW51ZU1ha2VDcmVkZW50aWFsQWZ0
ZXJVc2VyVmVyaWZpY2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6TG9jYWxBdXRoZW50aWNhdG9y
OjpnZXRBc3NlcnRpb24pOgorICAgICAgICAoV2ViS2l0OjpMb2NhbEF1dGhlbnRpY2F0b3I6OmNv
bnRpbnVlR2V0QXNzZXJ0aW9uQWZ0ZXJSZXNwb25zZVNlbGVjdGVkKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTmZjU2VydmljZS5tbToKKyAgICAgICAgKFdl
YktpdDo6TmZjU2VydmljZTo6cGxhdGZvcm1TdGFydERpc2NvdmVyeSk6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0hpZENvbm5lY3Rpb24uY3BwOgorICAg
ICAgICAoV2ViS2l0OjpNb2NrSGlkQ29ubmVjdGlvbjo6c2VuZCk6CisgICAgICAgIChXZWJLaXQ6
Ok1vY2tIaWRDb25uZWN0aW9uOjpmZWVkUmVwb3J0cyk6CisgICAgICAgIChXZWJLaXQ6Ok1vY2tI
aWRDb25uZWN0aW9uOjpjb250aW51ZUZlZWRSZXBvcnRzKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrTmZjU2VydmljZS5tbToKKyAgICAgICAgKFdlYktp
dDo6TW9ja05mY1NlcnZpY2U6OnJlY2VpdmVTdGFydFBvbGxpbmcpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYkF1dGhuUHJvY2Vzc1Byb3h5OjpnZXRXZWJBdXRoblByb2Nlc3NDb25uZWN0
aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9DdGFwQXV0
aGVudGljYXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkN0YXBBdXRoZW50aWNhdG9yOjptYWtl
Q3JlZGVudGlhbCk6CisgICAgICAgIChXZWJLaXQ6OkN0YXBBdXRoZW50aWNhdG9yOjpnZXRBc3Nl
cnRpb24pOgorICAgICAgICAoV2ViS2l0OjpDdGFwQXV0aGVudGljYXRvcjo6Y29udGludWVHZXRB
c3NlcnRpb25BZnRlclJlc3BvbnNlUmVjZWl2ZWQpOgorICAgICAgICAoV2ViS2l0OjpDdGFwQXV0
aGVudGljYXRvcjo6Y29udGludWVHZXROZXh0QXNzZXJ0aW9uQWZ0ZXJSZXNwb25zZVJlY2VpdmVk
KToKKyAgICAgICAgKFdlYktpdDo6Q3RhcEF1dGhlbnRpY2F0b3I6OmdldFJldHJpZXMpOgorICAg
ICAgICAoV2ViS2l0OjpDdGFwQXV0aGVudGljYXRvcjo6Y29udGludWVHZXRLZXlBZ3JlZW1lbnRB
ZnRlckdldFJldHJpZXMpOgorICAgICAgICAoV2ViS2l0OjpDdGFwQXV0aGVudGljYXRvcjo6Y29u
dGludWVSZXF1ZXN0UGluQWZ0ZXJHZXRLZXlBZ3JlZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpD
dGFwQXV0aGVudGljYXRvcjo6Y29udGludWVHZXRQaW5Ub2tlbkFmdGVyUmVxdWVzdFBpbik6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vQ3RhcEhpZERyaXZlci5j
cHA6CisgICAgICAgIChXZWJLaXQ6OkN0YXBIaWREcml2ZXI6Oldvcmtlcjo6dHJhbnNhY3QpOgor
ICAgICAgICAoV2ViS2l0OjpDdGFwSGlkRHJpdmVyOjpXb3JrZXI6OndyaXRlKToKKyAgICAgICAg
KFdlYktpdDo6Q3RhcEhpZERyaXZlcjo6dHJhbnNhY3QpOgorICAgICAgICAoV2ViS2l0OjpDdGFw
SGlkRHJpdmVyOjpjb250aW51ZUFmdGVyQ2hhbm5lbEFsbG9jYXRlZCk6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vRmlkb1NlcnZpY2UuY3BwOgorICAgICAgICAo
V2ViS2l0OjpGaWRvU2VydmljZTo6Z2V0SW5mbyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL2ZpZG8vVTJmQXV0aGVudGljYXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlUyZkF1dGhlbnRpY2F0b3I6Omlzc3VlQ29tbWFuZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dHJ5Q2xvc2Up
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldFVuZGVyUGFnZUJhY2tncm91bmRD
b2xvck92ZXJyaWRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpoYW5kbGVQcmV2
ZW50YWJsZVRvdWNoRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlY2Vp
dmVkUG9saWN5RGVjaXNpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJ1bk1v
ZGFsSmF2YVNjcmlwdERpYWxvZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cnVu
QmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
Ojpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6Y3JlYXRlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpnZXRH
UFVQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpn
ZXRXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojppc1Jlc3Bv
bnNpdmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmlzUmVzcG9uc2l2ZVdp
dGhMYXp5U3RvcCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZXN0YWJsaXNo
U2VydmljZVdvcmtlckNvbnRleHQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6
Z2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvWFIvUGxh
dGZvcm1YUlN5c3RlbS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3JtWFJTeXN0ZW06Omlu
aXRpYWxpemVUcmFja2luZ0FuZFJlbmRlcmluZyk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9Q
cm9jZXNzQXNzZXJ0aW9uSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzQXNzZXJ0aW9u
OjphY3F1aXJlU3luYyk6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NBbmRVSUFzc2VydGlvbjo6
cHJvY2Vzc0Fzc2VydGlvbldhc0ludmFsaWRhdGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9z
L1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp3aWxs
T3BlbkFwcExpbmspOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94
eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94eU1hYzo6aW5zZXJ0
T3JVcGRhdGVRdWlja0xvb2tJbWFnZUl0ZW0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21l
ZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6cHJlcGFyZUZvclBsYXliYWNrKToKKyAgICAgICAgKFdlYktp
dDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpsb2FkKToKKyAgICAgICAgKFdlYktpdDo6TWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwZXJmb3JtVGFza0F0TWVkaWFUaW1lKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
cjo6dXBkYXRlQ2FwdHVyZURldmljZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViUGVybWlzc2lvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
ZXJtaXNzaW9uQ29udHJvbGxlcjo6dHJ5UHJvY2Vzc2luZ1JlcXVlc3RzKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFN5bnRoZXNpc0NsaWVudC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaFN5bnRoZXNpc0NsaWVudDo6c3BlYWspOgorICAgICAg
ICAoV2ViS2l0OjpXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQ6OnBhdXNlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50OjpyZXN1bWUpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW06CisgICAg
ICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpzZW5kRGlkRmlyc3RM
YXllckZsdXNoSWZOZWVkZWQpOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYTo6Zm9yY2VSZXBhaW50QXN5bmMpOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENv
cmVBbmltYXRpb25EcmF3aW5nQXJlYTo6aGFuZGxlQWN0aXZpdHlTdGF0ZUNoYW5nZUNhbGxiYWNr
c0lmTmVlZGVkKToKKwogMjAyMS0xMC0xMiAgUGVyIEFybmUgVm9sbGFuIDxwdm9sbGFuQGFwcGxl
LmNvbT4KIAogICAgICAgICBbaU9TXSBBZGQgc3lzY2FsbCB0ZWxlbWV0cnkgaW4gdGhlIFdlYkNv
bnRlbnQgcHJvY2Vzcycgc2FuZGJveApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDU1
ZTJhNWVhYTdlNGRiZGYwYTZkY2E3MTAwY2IyNzNiMTYwMTUzMTMuLmY5YmJhZTM2YmQ3NGY3ZmVj
Mjc3ZjhlMjA4MzVlMmI1YzE2NjFlZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNyBAQAorMjAyMS0xMC0xMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgorCisgICAgICAgIEFsbG93IGRpcmVjdCBjb25zdHJ1Y3Rpb24gb2YgV2Vha1B0ciB3aXRob3V0
IG1ha2VXZWFrUHRyKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzMTU4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFsbG93IGRpcmVjdCBjb25zdHJ1Y3Rpb24gb2YgV2Vha1B0ciB3aXRob3V0IG1ha2VX
ZWFrUHRyKCksIGFuZCBkZXByZWNhdGUgbWFrZVdlYWtQdHIoKS4KKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbToKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6
cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50Lm1tOgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmdldExv
YWREZWNpc2lvbkZvckljb25zKToKKwogMjAyMS0xMC0xMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIERPTVRpbWVTdGFtcCBpcyBub3cgRXBvY2hUaW1lU3RhbXAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1dlYWtQdHIuaCBiL1NvdXJjZS9XVEYvd3RmL1dl
YWtQdHIuaAppbmRleCBmNWNmOWRkOTU3YmJiNzViMjA3NzI2ZTM4YzU0NzYwZjhjYTg4OWJiLi5m
NGU3YjEyNDUxNGZmYjBiMDgzM2YwM2YxMDg0OWNiNmExYTJlMTIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9XZWFrUHRyLmgKKysrIGIvU291cmNlL1dURi93dGYvV2Vha1B0ci5oCkBAIC0x
MDEsNiArMTAxLDM0IEBAIHB1YmxpYzoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBXZWFrUHRy
KGNvbnN0IFdlYWtQdHI8VSwgQ291bnRlcj4mKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBX
ZWFrUHRyKFdlYWtQdHI8VSwgQ291bnRlcj4mJik7CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSA9
IHN0ZDo6ZW5hYmxlX2lmX3Q8IUlzU21hcnRQdHI8VD46OnZhbHVlPj4gV2Vha1B0cihUKiBvYmpl
Y3QsIEVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zIHNob3VsZEVuYWJsZUFzc2VydGlv
bnMgPSBFbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9uczo6WWVzKQorICAgICAgICA6IG1f
aW1wbChvYmplY3QgPyBpbXBsRm9yT2JqZWN0KCpvYmplY3QpIDogbnVsbHB0cikKKyNpZiBBU1NF
UlRfRU5BQkxFRAorICAgICAgICAsIG1fc2hvdWxkRW5hYmxlQXNzZXJ0aW9ucyhzaG91bGRFbmFi
bGVBc3NlcnRpb25zID09IEVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zOjpZZXMpCisj
ZW5kaWYKKyAgICB7CisgICAgICAgIFVOVVNFRF9QQVJBTShzaG91bGRFbmFibGVBc3NlcnRpb25z
KTsKKyAgICAgICAgQVNTRVJUKCFvYmplY3QgfHwgb2JqZWN0ID09IG1faW1wbC0+dGVtcGxhdGUg
Z2V0PFQ+KCkpOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lID0gc3RkOjplbmFibGVf
aWZfdDwhSXNTbWFydFB0cjxUPjo6dmFsdWU+PiBXZWFrUHRyKFQmIG9iamVjdCwgRW5hYmxlV2Vh
a1B0clRocmVhZGluZ0Fzc2VydGlvbnMgc2hvdWxkRW5hYmxlQXNzZXJ0aW9ucyA9IEVuYWJsZVdl
YWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zOjpZZXMpCisgICAgICAgIDogbV9pbXBsKGltcGxGb3JP
YmplY3Qob2JqZWN0KSkKKyNpZiBBU1NFUlRfRU5BQkxFRAorICAgICAgICAsIG1fc2hvdWxkRW5h
YmxlQXNzZXJ0aW9ucyhzaG91bGRFbmFibGVBc3NlcnRpb25zID09IEVuYWJsZVdlYWtQdHJUaHJl
YWRpbmdBc3NlcnRpb25zOjpZZXMpCisjZW5kaWYKKyAgICB7CisgICAgICAgIFVOVVNFRF9QQVJB
TShzaG91bGRFbmFibGVBc3NlcnRpb25zKTsKKyAgICAgICAgQVNTRVJUKCZvYmplY3QgPT0gbV9p
bXBsLT50ZW1wbGF0ZSBnZXQ8VD4oKSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUg
PSBzdGQ6OmVuYWJsZV9pZl90PCFJc1NtYXJ0UHRyPFQ+Ojp2YWx1ZT4+IFdlYWtQdHIoUmVmPFQ+
JiBvYmplY3QsIEVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zIHNob3VsZEVuYWJsZUFz
c2VydGlvbnMgPSBFbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9uczo6WWVzKQorICAgICAg
ICA6IFdlYWtQdHIob2JqZWN0LmdldCgpLCBzaG91bGRFbmFibGVBc3NlcnRpb25zKQorICAgIHsg
fQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PCFJc1NtYXJ0UHRy
PFQ+Ojp2YWx1ZT4+IFdlYWtQdHIoUmVmUHRyPFQ+JiBvYmplY3QsIEVuYWJsZVdlYWtQdHJUaHJl
YWRpbmdBc3NlcnRpb25zIHNob3VsZEVuYWJsZUFzc2VydGlvbnMgPSBFbmFibGVXZWFrUHRyVGhy
ZWFkaW5nQXNzZXJ0aW9uczo6WWVzKQorICAgICAgICA6IFdlYWtQdHIob2JqZWN0LmdldCgpLCBz
aG91bGRFbmFibGVBc3NlcnRpb25zKQorICAgIHsgfQorCiAgICAgVCogZ2V0KCkgY29uc3QKICAg
ICB7CiAgICAgICAgIC8vIEZJWE1FOiBPdXIgR0MgdGhyZWFkcyBjdXJyZW50bHkgbmVlZCB0byBn
ZXQgb3BhcXVlIHBvaW50ZXJzIGZyb20gV2Vha1B0cnMgYW5kIGhhdmUgdG8gYmUgc3BlY2lhbC1j
YXNlZC4KQEAgLTE0NCw2ICsxNzIsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgVU5VU0VEX1BBUkFN
KHNob3VsZEVuYWJsZUFzc2VydGlvbnMpOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFU+IHN0YXRpYyBXZWFrUHRySW1wbDxDb3VudGVyPiogaW1wbEZvck9iamVjdChVJiBvYmplY3Qp
CisgICAgeworICAgICAgICBvYmplY3Qud2Vha1B0ckZhY3RvcnkoKS5pbml0aWFsaXplSWZOZWVk
ZWQob2JqZWN0KTsKKyAgICAgICAgcmV0dXJuIG9iamVjdC53ZWFrUHRyRmFjdG9yeSgpLm1faW1w
bC5nZXQoKTsKKyAgICB9CisKICAgICBSZWZQdHI8V2Vha1B0ckltcGw8Q291bnRlcj4+IG1faW1w
bDsKICNpZiBBU1NFUlRfRU5BQkxFRAogICAgIGJvb2wgbV9zaG91bGRFbmFibGVBc3NlcnRpb25z
IHsgdHJ1ZSB9OwpAQCAtMjA2LDYgKzI0MCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUsIHR5cGVuYW1lPiBmcmllbmQgY2xhc3MgV2Vha0hhc2hTZXQ7CiAgICAg
dGVtcGxhdGU8dHlwZW5hbWUsIHR5cGVuYW1lLCB0eXBlbmFtZT4gZnJpZW5kIGNsYXNzIFdlYWtI
YXNoTWFwOworICAgIHRlbXBsYXRlPHR5cGVuYW1lLCB0eXBlbmFtZT4gZnJpZW5kIGNsYXNzIFdl
YWtQdHI7CiAKICAgICBtdXRhYmxlIFJlZlB0cjxXZWFrUHRySW1wbDxDb3VudGVyPj4gbV9pbXBs
OwogI2lmIEFTU0VSVF9FTkFCTEVECkBAIC0yNjgsMTEgKzMwMywxMyBAQCB0ZW1wbGF0ZTx0eXBl
bmFtZSBULCB0eXBlbmFtZSBDb3VudGVyPiB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBpbmxpbmUgV2Vh
a1B0cjxULCBDbwogICAgIHJldHVybiAqdGhpczsKIH0KIAorLy8gbWFrZVdlYWtQdHIoKSBpcyBk
ZXByZWNhdGVkLiBVc2UgV2Vha1B0ciB7IG9iamVjdCB9IGRpcmVjdGx5IGluc3RlYWQuCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSA9IHN0ZDo6ZW5hYmxlX2lmX3Q8IUlzU21hcnRQdHI8
VD46OnZhbHVlPj4gaW5saW5lIGF1dG8gbWFrZVdlYWtQdHIoVCYgb2JqZWN0LCBFbmFibGVXZWFr
UHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyBlbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyA9
IEVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zOjpZZXMpCiB7CiAgICAgcmV0dXJuIG9i
amVjdC53ZWFrUHRyRmFjdG9yeSgpLnRlbXBsYXRlIGNyZWF0ZVdlYWtQdHI8VD4ob2JqZWN0LCBl
bmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyk7CiB9CiAKKy8vIG1ha2VXZWFrUHRyKCkg
aXMgZGVwcmVjYXRlZC4gVXNlIFdlYWtQdHIgeyBvYmplY3QgfSBkaXJlY3RseSBpbnN0ZWFkLgog
dGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PCFJc1NtYXJ0
UHRyPFQ+Ojp2YWx1ZT4+IGlubGluZSBhdXRvIG1ha2VXZWFrUHRyKFQqIHB0ciwgRW5hYmxlV2Vh
a1B0clRocmVhZGluZ0Fzc2VydGlvbnMgZW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnMg
PSBFbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9uczo6WWVzKSAtPiBkZWNsdHlwZShtYWtl
V2Vha1B0cigqcHRyKSkKIHsKICAgICBpZiAoIXB0cikKQEAgLTI4MCwxMSArMzE3LDEzIEBAIHRl
bXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDwhSXNTbWFydFB0
cjxUPjo6dmFsdWU+PiBpbmxpbmUKICAgICByZXR1cm4gbWFrZVdlYWtQdHIoKnB0ciwgZW5hYmxl
V2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnMpOwogfQogCisvLyBtYWtlV2Vha1B0cigpIGlzIGRl
cHJlY2F0ZWQuIFVzZSBXZWFrUHRyIHsgb2JqZWN0IH0gZGlyZWN0bHkgaW5zdGVhZC4KIHRlbXBs
YXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDwhSXNTbWFydFB0cjxU
Pjo6dmFsdWU+PiBpbmxpbmUgYXV0byBtYWtlV2Vha1B0cihjb25zdCBSZWY8VD4mIG9iamVjdCwg
RW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnMgZW5hYmxlV2Vha1B0clRocmVhZGluZ0Fz
c2VydGlvbnMgPSBFbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9uczo6WWVzKQogewogICAg
IHJldHVybiBtYWtlV2Vha1B0cihvYmplY3QuZ2V0KCksIGVuYWJsZVdlYWtQdHJUaHJlYWRpbmdB
c3NlcnRpb25zKTsKIH0KIAorLy8gbWFrZVdlYWtQdHIoKSBpcyBkZXByZWNhdGVkLiBVc2UgV2Vh
a1B0ciB7IG9iamVjdCB9IGRpcmVjdGx5IGluc3RlYWQuCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0
eXBlbmFtZSA9IHN0ZDo6ZW5hYmxlX2lmX3Q8IUlzU21hcnRQdHI8VD46OnZhbHVlPj4gaW5saW5l
IGF1dG8gbWFrZVdlYWtQdHIoY29uc3QgUmVmUHRyPFQ+JiBvYmplY3QsIEVuYWJsZVdlYWtQdHJU
aHJlYWRpbmdBc3NlcnRpb25zIGVuYWJsZVdlYWtQdHJUaHJlYWRpbmdBc3NlcnRpb25zID0gRW5h
YmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnM6OlllcykKIHsKICAgICByZXR1cm4gbWFrZVdl
YWtQdHIob2JqZWN0LmdldCgpLCBlbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRDb29yZGlu
YXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRDb29yZGlu
YXRvci5jcHAKaW5kZXggNzhjYTMxMTNhMTcxYWJhNGEyNTAwYWY0MjJlNzZhM2Y2YzQ1MjA0Zi4u
ZTZmMDEwZWZiNTVkYWI4ZWMzY2VjZTM2NzRiMjg4ZmY3MWE1MDhmNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50Q29vcmRpbmF0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudENvb3JkaW5hdG9yLmNwcApA
QCAtODIsNyArODIsNyBAQCBib29sIFBheW1lbnRDb29yZGluYXRvcjo6Y2FuTWFrZVBheW1lbnRz
KERvY3VtZW50JiBkb2N1bWVudCkKIAogdm9pZCBQYXltZW50Q29vcmRpbmF0b3I6OmNhbk1ha2VQ
YXltZW50c1dpdGhBY3RpdmVDYXJkKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiBt
ZXJjaGFudElkZW50aWZpZXIsIFdURjo6RnVuY3Rpb248dm9pZChib29sKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKIHsKLSAgICBtX2NsaWVudC5jYW5NYWtlUGF5bWVudHNXaXRoQWN0aXZlQ2FyZCht
ZXJjaGFudElkZW50aWZpZXIsIGRvY3VtZW50LmRvbWFpbigpLCBbdGhpcywgd2Vha1RoaXMgPSBt
YWtlV2Vha1B0cigqdGhpcyksIGRvY3VtZW50ID0gbWFrZVdlYWtQdHIoZG9jdW1lbnQpLCBjb21w
bGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShib29sIGNhbk1ha2VQ
YXltZW50cykgeworICAgIG1fY2xpZW50LmNhbk1ha2VQYXltZW50c1dpdGhBY3RpdmVDYXJkKG1l
cmNoYW50SWRlbnRpZmllciwgZG9jdW1lbnQuZG9tYWluKCksIFt0aGlzLCB3ZWFrVGhpcyA9IFdl
YWtQdHIgeyAqdGhpcyB9LCBkb2N1bWVudCA9IFdlYWtQdHIgeyBkb2N1bWVudCB9LCBjb21wbGV0
aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShib29sIGNhbk1ha2VQYXlt
ZW50cykgewogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuIGNvbXBs
ZXRpb25IYW5kbGVyKGZhbHNlKTsKIApAQCAtMzMxLDcgKzMzMSw3IEBAIEV4cGVjdGVkPHZvaWQs
IEV4Y2VwdGlvbkRldGFpbHM+IFBheW1lbnRDb29yZGluYXRvcjo6c2hvdWxkQWxsb3dVc2VyQWdl
bnRTY3JpcHRzCiB2b2lkIFBheW1lbnRDb29yZGluYXRvcjo6Z2V0U2V0dXBGZWF0dXJlcyhjb25z
dCBBcHBsZVBheVNldHVwQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbiwgY29uc3QgVVJMJiB1
cmwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFJlZjxBcHBsZVBheVNldHVwRmVhdHVy
ZT4+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIFBBWU1FTlRfQ09PUkRJTkFUT1Jf
UkVMRUFTRV9MT0coImdldFNldHVwRmVhdHVyZXMoKSIpOwotICAgIG1fY2xpZW50LmdldFNldHVw
RmVhdHVyZXMoY29uZmlndXJhdGlvbiwgdXJsLCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0
cigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcild
KFZlY3RvcjxSZWY8QXBwbGVQYXlTZXR1cEZlYXR1cmU+PiYmIGZlYXR1cmVzKSBtdXRhYmxlIHsK
KyAgICBtX2NsaWVudC5nZXRTZXR1cEZlYXR1cmVzKGNvbmZpZ3VyYXRpb24sIHVybCwgW3RoaXMs
IHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcildKFZlY3RvcjxSZWY8QXBwbGVQYXlTZXR1cEZlYXR1cmU+PiYm
IGZlYXR1cmVzKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgUEFZTUVOVF9DT09SRElOQVRPUl9SRUxFQVNFX0xPRygiZ2V0U2V0
dXBGZWF0dXJlcygpIGNvbXBsZXRlZCAoZmVhdHVyZXM6ICV6dSkiLCBmZWF0dXJlcy5zaXplKCkp
OwpAQCAtMzQyLDcgKzM0Miw3IEBAIHZvaWQgUGF5bWVudENvb3JkaW5hdG9yOjpnZXRTZXR1cEZl
YXR1cmVzKGNvbnN0IEFwcGxlUGF5U2V0dXBDb25maWd1cmF0aW9uJiBjb25mCiB2b2lkIFBheW1l
bnRDb29yZGluYXRvcjo6YmVnaW5BcHBsZVBheVNldHVwKGNvbnN0IEFwcGxlUGF5U2V0dXBDb25m
aWd1cmF0aW9uJiBjb25maWd1cmF0aW9uLCBjb25zdCBVUkwmIHVybCwgVmVjdG9yPFJlZlB0cjxB
cHBsZVBheVNldHVwRmVhdHVyZT4+JiYgZmVhdHVyZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgUEFZTUVOVF9DT09SRElOQVRPUl9S
RUxFQVNFX0xPRygiYmVnaW5BcHBsZVBheVNldHVwKCkiKTsKLSAgICBtX2NsaWVudC5iZWdpbkFw
cGxlUGF5U2V0dXAoY29uZmlndXJhdGlvbiwgdXJsLCBXVEZNb3ZlKGZlYXR1cmVzKSwgW3RoaXMs
IHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpXShib29sIHN1Y2Nlc3MpIG11dGFibGUgeworICAgIG1fY2xp
ZW50LmJlZ2luQXBwbGVQYXlTZXR1cChjb25maWd1cmF0aW9uLCB1cmwsIFdURk1vdmUoZmVhdHVy
ZXMpLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgY29tcGxldGlvbkhhbmRs
ZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYm9vbCBzdWNjZXNzKSBtdXRhYmxlIHsK
ICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgUEFZ
TUVOVF9DT09SRElOQVRPUl9SRUxFQVNFX0xPRygiYmVnaW5BcHBsZVBheVNldHVwKCkgY29tcGxl
dGVkIChzdWNjZXNzOiAlZCkiLCBzdWNjZXNzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYXN5bmMtY2xpcGJvYXJkL0NsaXBib2FyZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2FzeW5jLWNsaXBib2FyZC9DbGlwYm9hcmQuY3BwCmluZGV4IGViNTcwODk2MTViNmY5
MjU0ZjY3MTA0OTM1YTg3MGU5YWE1YjAzNTQuLjRhZTdiY2M5NmZhNzNjNzY5OTdkMmYyNTU3ZGFm
NGE3NTU4NWI4YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXN5bmMtY2xp
cGJvYXJkL0NsaXBib2FyZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hc3luYy1j
bGlwYm9hcmQvQ2xpcGJvYXJkLmNwcApAQCAtNzMsNyArNzMsNyBAQCBSZWY8Q2xpcGJvYXJkPiBD
bGlwYm9hcmQ6OmNyZWF0ZShOYXZpZ2F0b3ImIG5hdmlnYXRvcikKIH0KIAogQ2xpcGJvYXJkOjpD
bGlwYm9hcmQoTmF2aWdhdG9yJiBuYXZpZ2F0b3IpCi0gICAgOiBtX25hdmlnYXRvcihtYWtlV2Vh
a1B0cihuYXZpZ2F0b3IpKQorICAgIDogbV9uYXZpZ2F0b3IobmF2aWdhdG9yKQogewogfQogCkBA
IC0zMDIsNyArMzAyLDcgQEAgUGFzdGVib2FyZCYgQ2xpcGJvYXJkOjphY3RpdmVQYXN0ZWJvYXJk
KCkKIH0KIAogQ2xpcGJvYXJkOjpJdGVtV3JpdGVyOjpJdGVtV3JpdGVyKENsaXBib2FyZCYgY2xp
cGJvYXJkLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCi0gICAgOiBtX2NsaXBib2Fy
ZChtYWtlV2Vha1B0cihjbGlwYm9hcmQpKQorICAgIDogbV9jbGlwYm9hcmQoY2xpcGJvYXJkKQog
ICAgICwgbV9wcm9taXNlKFdURk1vdmUocHJvbWlzZSkpCiAgICAgLCBtX3Bhc3RlYm9hcmQoUGFz
dGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKFBhZ2VQYXN0ZWJvYXJkQ29udGV4dDo6Y3Jl
YXRlKGNsaXBib2FyZC5mcmFtZSgpLT5wYWdlSUQoKSkpKQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hc3luYy1jbGlwYm9hcmQvQ2xpcGJvYXJkSXRlbS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FzeW5jLWNsaXBib2FyZC9DbGlwYm9hcmRJdGVtLmNwcAppbmRl
eCBhNjI5ODZiNDg4YmQwNzc2MjNkOTNlMTY3MTYyMjc4OWUwZjFlNTU4Li4yYTQ2MTQzNWJkOTBj
YWVkZTcwZTBlNmM4ZGZmNmYwOGJhODAxODJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2FzeW5jLWNsaXBib2FyZC9DbGlwYm9hcmRJdGVtLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2FzeW5jLWNsaXBib2FyZC9DbGlwYm9hcmRJdGVtLmNwcApAQCAtNjYsOCAr
NjYsOCBAQCBDbGlwYm9hcmRJdGVtOjpDbGlwYm9hcmRJdGVtKFZlY3RvcjxLZXlWYWx1ZVBhaXI8
U3RyaW5nLCBSZWZQdHI8RE9NUHJvbWlzZT4+PiYmCiB9CiAKIENsaXBib2FyZEl0ZW06OkNsaXBi
b2FyZEl0ZW0oQ2xpcGJvYXJkJiBjbGlwYm9hcmQsIGNvbnN0IFBhc3RlYm9hcmRJdGVtSW5mbyYg
aW5mbykKLSAgICA6IG1fY2xpcGJvYXJkKG1ha2VXZWFrUHRyKGNsaXBib2FyZCkpCi0gICAgLCBt
X25hdmlnYXRvcihtYWtlV2Vha1B0cihjbGlwYm9hcmQubmF2aWdhdG9yKCkpKQorICAgIDogbV9j
bGlwYm9hcmQoY2xpcGJvYXJkKQorICAgICwgbV9uYXZpZ2F0b3IoY2xpcGJvYXJkLm5hdmlnYXRv
cigpKQogICAgICwgbV9kYXRhU291cmNlKG1ha2VVbmlxdWU8Q2xpcGJvYXJkSXRlbVBhc3RlYm9h
cmREYXRhU291cmNlPigqdGhpcywgaW5mbykpCiAgICAgLCBtX3ByZXNlbnRhdGlvblN0eWxlKGNs
aXBib2FyZEl0ZW1QcmVzZW50YXRpb25TdHlsZShpbmZvKSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvYXN5bmMtY2xpcGJvYXJkL0NsaXBib2FyZEl0ZW1CaW5kaW5nc0Rh
dGFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hc3luYy1jbGlwYm9hcmQvQ2xp
cGJvYXJkSXRlbUJpbmRpbmdzRGF0YVNvdXJjZS5jcHAKaW5kZXggZDcxZDkxMzg4MTBkMWYzNmI5
Mjc5MTI3NzU1MDViZjM0YzBjZjQxZS4uNWYzZTY0ZGYzMDcwN2YzNmFiZDEwMDRkYjUxZWJiMzgz
MTg2Yjg3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hc3luYy1jbGlwYm9h
cmQvQ2xpcGJvYXJkSXRlbUJpbmRpbmdzRGF0YVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hc3luYy1jbGlwYm9hcmQvQ2xpcGJvYXJkSXRlbUJpbmRpbmdzRGF0YVNvdXJj
ZS5jcHAKQEAgLTEyOCw3ICsxMjgsNyBAQCB2b2lkIENsaXBib2FyZEl0ZW1CaW5kaW5nc0RhdGFT
b3VyY2U6OmNvbGxlY3REYXRhRm9yV3JpdGluZyhDbGlwYm9hcmQmIGRlc3RpbmF0aQogICAgIG1f
aXRlbVR5cGVMb2FkZXJzLmNsZWFyKCk7CiAgICAgQVNTRVJUKCFtX2NvbXBsZXRpb25IYW5kbGVy
KTsKICAgICBtX2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uKTsKLSAgICBt
X3dyaXRpbmdEZXN0aW5hdGlvbiA9IG1ha2VXZWFrUHRyKGRlc3RpbmF0aW9uKTsKKyAgICBtX3dy
aXRpbmdEZXN0aW5hdGlvbiA9IGRlc3RpbmF0aW9uOwogICAgIG1fbnVtYmVyT2ZQZW5kaW5nQ2xp
cGJvYXJkVHlwZXMgPSBtX2l0ZW1Qcm9taXNlcy5zaXplKCk7CiAgICAgbV9pdGVtVHlwZUxvYWRl
cnMgPSBtX2l0ZW1Qcm9taXNlcy5tYXAoWyZdIChhdXRvJiB0eXBlQW5kSXRlbSkgewogICAgICAg
ICBhdXRvIHR5cGUgPSB0eXBlQW5kSXRlbS5rZXk7CkBAIC0xMzksNyArMTM5LDcgQEAgdm9pZCBD
bGlwYm9hcmRJdGVtQmluZGluZ3NEYXRhU291cmNlOjpjb2xsZWN0RGF0YUZvcldyaXRpbmcoQ2xp
cGJvYXJkJiBkZXN0aW5hdGkKICAgICAgICAgfSk7CiAKICAgICAgICAgYXV0byBwcm9taXNlID0g
dHlwZUFuZEl0ZW0udmFsdWU7Ci0gICAgICAgIHByb21pc2UtPndoZW5TZXR0bGVkKFt0aGlzLCBw
cm90ZWN0ZWRJdGVtID0gUmVmIHsgbV9pdGVtIH0sIGRlc3RpbmF0aW9uID0gbV93cml0aW5nRGVz
dGluYXRpb24sIHByb21pc2UsIHR5cGUsIHdlYWtJdGVtVHlwZUxvYWRlciA9IG1ha2VXZWFrUHRy
KGl0ZW1UeXBlTG9hZGVyLnB0cigpKV0gKCkgbXV0YWJsZSB7CisgICAgICAgIHByb21pc2UtPndo
ZW5TZXR0bGVkKFt0aGlzLCBwcm90ZWN0ZWRJdGVtID0gUmVmIHsgbV9pdGVtIH0sIGRlc3RpbmF0
aW9uID0gbV93cml0aW5nRGVzdGluYXRpb24sIHByb21pc2UsIHR5cGUsIHdlYWtJdGVtVHlwZUxv
YWRlciA9IFdlYWtQdHIgeyBpdGVtVHlwZUxvYWRlciB9XSAoKSBtdXRhYmxlIHsKICAgICAgICAg
ICAgIGlmICghd2Vha0l0ZW1UeXBlTG9hZGVyKQogICAgICAgICAgICAgICAgIHJldHVybjsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jb250YWN0LXBpY2tlci9Db250YWN0
c01hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jb250YWN0LXBpY2tlci9Db250
YWN0c01hbmFnZXIuY3BwCmluZGV4IDQwYTdkZDVjOWRlMzg0NjU2MzJmNGI0ZjhkNTljYzQ4MmFj
MWNkY2IuLmQ4OTAwMTE4YWJlY2E5ZDU1YmNmZWY5ZjQwM2I0OTEzZTc5NjkzMTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY29udGFjdC1waWNrZXIvQ29udGFjdHNNYW5hZ2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NvbnRhY3QtcGlja2VyL0NvbnRhY3Rz
TWFuYWdlci5jcHAKQEAgLTUyLDcgKzUyLDcgQEAgUmVmPENvbnRhY3RzTWFuYWdlcj4gQ29udGFj
dHNNYW5hZ2VyOjpjcmVhdGUoTmF2aWdhdG9yJiBuYXZpZ2F0b3IpCiB9CiAKIENvbnRhY3RzTWFu
YWdlcjo6Q29udGFjdHNNYW5hZ2VyKE5hdmlnYXRvciYgbmF2aWdhdG9yKQotICAgIDogbV9uYXZp
Z2F0b3IobWFrZVdlYWtQdHIobmF2aWdhdG9yKSkKKyAgICA6IG1fbmF2aWdhdG9yKG5hdmlnYXRv
cikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFs
bWFuYWdlbWVudC9OYXZpZ2F0b3JDcmVkZW50aWFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L05hdmlnYXRvckNyZWRlbnRpYWxzLmNwcAppbmRleCAx
MTgxYmQ5ODVhMjJiYTQ5M2Y4MzYzMWQ3ZTQxZmVlODc5YjU2YjNmLi4yNDRjYjJmZTNiZjA1YzJl
OTJlNTZiNTk3ODEzOTRhNTc1YWZhZGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L05hdmlnYXRvckNyZWRlbnRpYWxzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L05hdmlnYXRvckNyZWRl
bnRpYWxzLmNwcApAQCAtNTYsNyArNTYsNyBAQCBDcmVkZW50aWFsc0NvbnRhaW5lciogTmF2aWdh
dG9yQ3JlZGVudGlhbHM6OmNyZWRlbnRpYWxzKE5hdmlnYXRvciYgbmF2aWdhdG9yKQogewogICAg
IGlmICghbmF2aWdhdG9yLmZyYW1lKCkgfHwgIW5hdmlnYXRvci5mcmFtZSgpLT5kb2N1bWVudCgp
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gTmF2aWdhdG9yQ3JlZGVudGlh
bHM6OmZyb20oJm5hdmlnYXRvciktPmNyZWRlbnRpYWxzKG1ha2VXZWFrUHRyKCpuYXZpZ2F0b3Iu
ZnJhbWUoKS0+ZG9jdW1lbnQoKSkpOworICAgIHJldHVybiBOYXZpZ2F0b3JDcmVkZW50aWFsczo6
ZnJvbSgmbmF2aWdhdG9yKS0+Y3JlZGVudGlhbHMoKm5hdmlnYXRvci5mcmFtZSgpLT5kb2N1bWVu
dCgpKTsKIH0KIAogTmF2aWdhdG9yQ3JlZGVudGlhbHMqIE5hdmlnYXRvckNyZWRlbnRpYWxzOjpm
cm9tKE5hdmlnYXRvciogbmF2aWdhdG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uY3BwCmluZGV4IDdkZTk3MmM0
MzEyYmRlNGNkZDhlMTFkOGRhNWE1MzUyODlkOGNhNDkuLjViNWI0YmZhNjA3OThlMTk0ZjgzZTZi
YTI1MjEwMTAyNDVmZTJiNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5j
cnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5jcHAKQEAgLTEwNiw3ICsxMDYsNyBA
QCBNZWRpYUtleVNlc3Npb246Ok1lZGlhS2V5U2Vzc2lvbihEb2N1bWVudCYgZG9jdW1lbnQsIFdl
YWtQdHI8TWVkaWFLZXlzPiYmIGtleXMsCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAg
bV9pbnN0YW5jZVNlc3Npb24tPnNldExvZ2dlcihtX2xvZ2dlciwgbV9sb2dJZGVudGlmaWVyKTsK
ICNlbmRpZgotICAgIG1faW5zdGFuY2VTZXNzaW9uLT5zZXRDbGllbnQobWFrZVdlYWtQdHIoKnRo
aXMpKTsKKyAgICBtX2luc3RhbmNlU2Vzc2lvbi0+c2V0Q2xpZW50KCp0aGlzKTsKIAogICAgIGRv
Y3VtZW50LmFkZERpc3BsYXlDaGFuZ2VkT2JzZXJ2ZXIobV9kaXNwbGF5Q2hhbmdlZE9ic2VydmVy
KTsKIH0KQEAgLTE3Myw3ICsxNzMsNyBAQCB2b2lkIE1lZGlhS2V5U2Vzc2lvbjo6Z2VuZXJhdGVS
ZXF1ZXN0KGNvbnN0IEF0b21TdHJpbmcmIGluaXREYXRhVHlwZSwgY29uc3QgQnVmZgogICAgIC8v
IDguIExldCBzZXNzaW9uIHR5cGUgYmUgdGhpcyBvYmplY3QncyBzZXNzaW9uIHR5cGUuCiAgICAg
Ly8gOS4gTGV0IHByb21pc2UgYmUgYSBuZXcgcHJvbWlzZS4KICAgICAvLyAxMC4gUnVuIHRoZSBm
b2xsb3dpbmcgc3RlcHMgaW4gcGFyYWxsZWw6Ci0gICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFs
aXZlKCp0aGlzLCBUYXNrU291cmNlOjpOZXR3b3JraW5nLCBbdGhpcywgd2Vha1RoaXMgPSBtYWtl
V2Vha1B0cigqdGhpcyksIGluaXREYXRhID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoaW5pdERhdGEu
ZGF0YSgpLCBpbml0RGF0YS5sZW5ndGgoKSksIGluaXREYXRhVHlwZSwgcHJvbWlzZSA9IFdURk1v
dmUocHJvbWlzZSksIGlkZW50aWZpZXIgPSBXVEZNb3ZlKGlkZW50aWZpZXIpXSAoKSBtdXRhYmxl
IHsKKyAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxpdmUoKnRoaXMsIFRhc2tTb3VyY2U6Ok5l
dHdvcmtpbmcsIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBpbml0RGF0YSA9
IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGluaXREYXRhLmRhdGEoKSwgaW5pdERhdGEubGVuZ3RoKCkp
LCBpbml0RGF0YVR5cGUsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCBpZGVudGlmaWVyID0g
V1RGTW92ZShpZGVudGlmaWVyKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgIC8vIDEwLjEuIElmIHRo
ZSBpbml0IGRhdGEgaXMgbm90IHZhbGlkIGZvciBpbml0RGF0YVR5cGUsIHJlamVjdCBwcm9taXNl
IHdpdGggYSBuZXdseSBjcmVhdGVkIFR5cGVFcnJvci4KICAgICAgICAgLy8gMTAuMi4gTGV0IHNh
bml0aXplZCBpbml0IGRhdGEgYmUgYSB2YWxpZGF0ZWQgYW5kIHNhbml0aXplZCB2ZXJzaW9uIG9m
IGluaXQgZGF0YS4KICAgICAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gc2FuaXRpemVkSW5pdERh
dGEgPSBtX2ltcGxlbWVudGF0aW9uLT5zYW5pdGl6ZUluaXREYXRhKGluaXREYXRhVHlwZSwgaW5p
dERhdGEpOwpAQCAtMzAyLDcgKzMwMiw3IEBAIHZvaWQgTWVkaWFLZXlTZXNzaW9uOjpsb2FkKGNv
bnN0IFN0cmluZyYgc2Vzc2lvbklkLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pCiAKICAg
ICAvLyA3LiBMZXQgcHJvbWlzZSBiZSBhIG5ldyBwcm9taXNlLgogICAgIC8vIDguIFJ1biB0aGUg
Zm9sbG93aW5nIHN0ZXBzIGluIHBhcmFsbGVsOgotICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RB
bGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6TmV0d29ya2luZywgW3RoaXMsIHdlYWtUaGlzID0gbWFr
ZVdlYWtQdHIoKnRoaXMpLCBzZXNzaW9uSWQsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCBp
ZGVudGlmaWVyID0gV1RGTW92ZShpZGVudGlmaWVyKV0gKCkgbXV0YWJsZSB7CisgICAgcXVldWVU
YXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpOZXR3b3JraW5nLCBbdGhp
cywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgc2Vzc2lvbklkLCBwcm9taXNlID0gV1RG
TW92ZShwcm9taXNlKSwgaWRlbnRpZmllciA9IFdURk1vdmUoaWRlbnRpZmllcildICgpIG11dGFi
bGUgewogICAgICAgICAvLyA4LjEuIExldCBzYW5pdGl6ZWQgc2Vzc2lvbiBJRCBiZSBhIHZhbGlk
YXRlZCBhbmQvb3Igc2FuaXRpemVkIHZlcnNpb24gb2Ygc2Vzc2lvbklkLgogICAgICAgICAvLyA4
LjIuIElmIHRoZSBwcmVjZWRpbmcgc3RlcCBmYWlsZWQsIG9yIGlmIHNhbml0aXplZCBzZXNzaW9u
IElEIGlzIGVtcHR5LCByZWplY3QgcHJvbWlzZSB3aXRoIGEgbmV3bHkgY3JlYXRlZCBUeXBlRXJy
b3IuCiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBzYW5pdGl6ZWRTZXNzaW9uSWQgPSBt
X2ltcGxlbWVudGF0aW9uLT5zYW5pdGl6ZVNlc3Npb25JZChzZXNzaW9uSWQpOwpAQCAtNDIwLDcg
KzQyMCw3IEBAIHZvaWQgTWVkaWFLZXlTZXNzaW9uOjp1cGRhdGUoY29uc3QgQnVmZmVyU291cmNl
JiByZXNwb25zZSwgUmVmPERlZmVycmVkUHJvbWlzZT4mCiAgICAgLy8gNC4gTGV0IHJlc3BvbnNl
IGNvcHkgYmUgYSBjb3B5IG9mIHRoZSBjb250ZW50cyBvZiB0aGUgcmVzcG9uc2UgcGFyYW1ldGVy
LgogICAgIC8vIDUuIExldCBwcm9taXNlIGJlIGEgbmV3IHByb21pc2UuCiAgICAgLy8gNi4gUnVu
IHRoZSBmb2xsb3dpbmcgc3RlcHMgaW4gcGFyYWxsZWw6Ci0gICAgcXVldWVUYXNrS2VlcGluZ09i
amVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpOZXR3b3JraW5nLCBbdGhpcywgd2Vha1RoaXMg
PSBtYWtlV2Vha1B0cigqdGhpcyksIHJlc3BvbnNlID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUocmVz
cG9uc2UuZGF0YSgpLCByZXNwb25zZS5sZW5ndGgoKSksIHByb21pc2UgPSBXVEZNb3ZlKHByb21p
c2UpLCBpZGVudGlmaWVyID0gV1RGTW92ZShpZGVudGlmaWVyKV0gKCkgbXV0YWJsZSB7CisgICAg
cXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpOZXR3b3JraW5n
LCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgcmVzcG9uc2UgPSBTaGFyZWRC
dWZmZXI6OmNyZWF0ZShyZXNwb25zZS5kYXRhKCksIHJlc3BvbnNlLmxlbmd0aCgpKSwgcHJvbWlz
ZSA9IFdURk1vdmUocHJvbWlzZSksIGlkZW50aWZpZXIgPSBXVEZNb3ZlKGlkZW50aWZpZXIpXSAo
KSBtdXRhYmxlIHsKICAgICAgICAgLy8gNi4xLiBMZXQgc2FuaXRpemVkIHJlc3BvbnNlIGJlIGEg
dmFsaWRhdGVkIGFuZC9vciBzYW5pdGl6ZWQgdmVyc2lvbiBvZiByZXNwb25zZSBjb3B5LgogICAg
ICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBzYW5pdGl6ZWRSZXNwb25zZSA9IG1faW1wbGVtZW50
YXRpb24tPnNhbml0aXplUmVzcG9uc2UocmVzcG9uc2UpOwogCkBAIC01NTQsNyArNTU0LDcgQEAg
dm9pZCBNZWRpYUtleVNlc3Npb246OmNsb3NlKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlz
ZSkKIAogICAgIC8vIDQuIExldCBwcm9taXNlIGJlIGEgbmV3IHByb21pc2UuCiAgICAgLy8gNS4g
UnVuIHRoZSBmb2xsb3dpbmcgc3RlcHMgaW4gcGFyYWxsZWw6Ci0gICAgcXVldWVUYXNrS2VlcGlu
Z09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpOZXR3b3JraW5nLCBbdGhpcywgd2Vha1Ro
aXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCBpZGVu
dGlmaWVyID0gV1RGTW92ZShpZGVudGlmaWVyKV0gKCkgbXV0YWJsZSB7CisgICAgcXVldWVUYXNr
S2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpOZXR3b3JraW5nLCBbdGhpcywg
d2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSks
IGlkZW50aWZpZXIgPSBXVEZNb3ZlKGlkZW50aWZpZXIpXSAoKSBtdXRhYmxlIHsKICAgICAgICAg
Ly8gNS4xLiBMZXQgY2RtIGJlIHRoZSBDRE0gaW5zdGFuY2UgcmVwcmVzZW50ZWQgYnkgc2Vzc2lv
bidzIGNkbSBpbnN0YW5jZSB2YWx1ZS4KICAgICAgICAgLy8gNS4yLiBVc2UgY2RtIHRvIGNsb3Nl
IHRoZSBrZXkgc2Vzc2lvbiBhc3NvY2lhdGVkIHdpdGggc2Vzc2lvbi4KICAgICAgICAgbV9pbnN0
YW5jZVNlc3Npb24tPmNsb3NlU2Vzc2lvbihtX3Nlc3Npb25JZCwgW3RoaXMsIHdlYWtUaGlzID0g
bWFrZVdlYWtQdHIoKndlYWtUaGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIGlkZW50
aWZpZXIgPSBXVEZNb3ZlKGlkZW50aWZpZXIpXSAoKSBtdXRhYmxlIHsKQEAgLTU5NSw3ICs1OTUs
NyBAQCB2b2lkIE1lZGlhS2V5U2Vzc2lvbjo6cmVtb3ZlKFJlZjxEZWZlcnJlZFByb21pc2U+JiYg
cHJvbWlzZSkKIAogICAgIC8vIDMuIExldCBwcm9taXNlIGJlIGEgbmV3IHByb21pc2UuCiAgICAg
Ly8gNC4gUnVuIHRoZSBmb2xsb3dpbmcgc3RlcHMgaW4gcGFyYWxsZWw6Ci0gICAgcXVldWVUYXNr
S2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpOZXR3b3JraW5nLCBbdGhpcywg
d2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2Up
LCBpZGVudGlmaWVyID0gV1RGTW92ZShpZGVudGlmaWVyKV0gKCkgbXV0YWJsZSB7CisgICAgcXVl
dWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpOZXR3b3JraW5nLCBb
dGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgcHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSksIGlkZW50aWZpZXIgPSBXVEZNb3ZlKGlkZW50aWZpZXIpXSAoKSBtdXRhYmxlIHsKICAg
ICAgICAgLy8gNC4xLiBMZXQgY2RtIGJlIHRoZSBDRE0gaW5zdGFuY2UgcmVwcmVzZW50ZWQgYnkg
dGhpcyBvYmplY3QncyBjZG0gaW5zdGFuY2UgdmFsdWUuCiAgICAgICAgIC8vIDQuMi4gTGV0IG1l
c3NhZ2UgYmUgbnVsbC4KICAgICAgICAgLy8gNC4zLiBMZXQgbWVzc2FnZSB0eXBlIGJlIG51bGwu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlh
S2V5U3lzdGVtQWNjZXNzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVk
aWEvTWVkaWFLZXlTeXN0ZW1BY2Nlc3MuY3BwCmluZGV4IDdlMmYxNGVlMmI2NjJhMzI2NzM5MWZm
MTBmM2YxNTRhMjhjYWVmM2UuLmY4YzFmZGIzZTZlNWM2ODNjNDRhNzQxMzA5YzZjZDkzNTUxYTUy
Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVk
aWFLZXlTeXN0ZW1BY2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlw
dGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1BY2Nlc3MuY3BwCkBAIC02NCw3ICs2NCw3IEBAIHZvaWQg
TWVkaWFLZXlTeXN0ZW1BY2Nlc3M6OmNyZWF0ZU1lZGlhS2V5cyhEb2N1bWVudCYgZG9jdW1lbnQs
IFJlZjxEZWZlcnJlZFByb21pCiAgICAgLy8gV2hlbiB0aGlzIG1ldGhvZCBpcyBpbnZva2VkLCB0
aGUgdXNlciBhZ2VudCBtdXN0IHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgogICAgIC8vIDEuIExl
dCBwcm9taXNlIGJlIGEgbmV3IHByb21pc2UuCiAgICAgLy8gMi4gUnVuIHRoZSBmb2xsb3dpbmcg
c3RlcHMgaW4gcGFyYWxsZWw6Ci0gICAgZG9jdW1lbnQuZXZlbnRMb29wKCkucXVldWVUYXNrKFRh
c2tTb3VyY2U6Ok1lZGlhRWxlbWVudCwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRo
aXMpLCB3ZWFrRG9jdW1lbnQgPSBtYWtlV2Vha1B0cihkb2N1bWVudCksIHByb21pc2UgPSBXVEZN
b3ZlKHByb21pc2UpXSAoKSBtdXRhYmxlIHsKKyAgICBkb2N1bWVudC5ldmVudExvb3AoKS5xdWV1
ZVRhc2soVGFza1NvdXJjZTo6TWVkaWFFbGVtZW50LCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRy
IHsgKnRoaXMgfSwgd2Vha0RvY3VtZW50ID0gbWFrZVdlYWtQdHIoZG9jdW1lbnQpLCBwcm9taXNl
ID0gV1RGTW92ZShwcm9taXNlKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgIFJlZlB0ciBwcm90ZWN0
ZWRUaGlzID0gd2Vha1RoaXMuZ2V0KCk7CiAgICAgICAgIGlmICghcHJvdGVjdGVkVGhpcykKICAg
ICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFEZXZpY2VzLmNwcAppbmRleCA4NTE5M2FjODVlMTRhMGY0NGQ0MWNlZTQ3OTli
Mzc5ZGRhZDJiMGIwLi42Y2Q0MmM2NDA2MjQzYzc2MmNlNzhhYzUyYjA0ZWJlYmY1MGM2YjBkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNl
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmlj
ZXMuY3BwCkBAIC0yOTksNyArMjk5LDcgQEAgdm9pZCBNZWRpYURldmljZXM6Omxpc3RlbkZvckRl
dmljZUNoYW5nZXMoKQogCiAgICAgbV9saXN0ZW5pbmdGb3JEZXZpY2VDaGFuZ2VzID0gdHJ1ZTsK
IAotICAgIG1fZGV2aWNlQ2hhbmdlVG9rZW4gPSBjb250cm9sbGVyLT5hZGREZXZpY2VDaGFuZ2VP
YnNlcnZlcihbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXNdKCkgeworICAgIG1f
ZGV2aWNlQ2hhbmdlVG9rZW4gPSBjb250cm9sbGVyLT5hZGREZXZpY2VDaGFuZ2VPYnNlcnZlcihb
d2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgdGhpc10oKSB7CiAgICAgICAgIGlmICghd2Vh
a1RoaXMgfHwgaXNDb250ZXh0U3RvcHBlZCgpIHx8IG1fc2NoZWR1bGVkRXZlbnRUaW1lci5pc0Fj
dGl2ZSgpKQogICAgICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1dlYlhSU2Vzc2lvbi5jcHAKaW5kZXggNGU3ZmVkZjUxYjQzNmRjOWEwZDZiM2ZhZDY2
ZWUzODYzMDY4MDI2OC4uZjg4OGJhN2IzY2RiMjYzYmJhOGE3OWRlOWM0MjkzOGNkZDkwYjgzMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlNlc3Npb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTZXNzaW9uLmNwcApAQCAt
MjEwLDcgKzIxMCw3IEBAIHZvaWQgV2ViWFJTZXNzaW9uOjpyZXF1ZXN0UmVmZXJlbmNlU3BhY2Uo
WFJSZWZlcmVuY2VTcGFjZVR5cGUgdHlwZSwgUmVxdWVzdFJlZmVyCiAKICAgICAvLyAxLiBMZXQg
cHJvbWlzZSBiZSBhIG5ldyBQcm9taXNlLgogICAgIC8vIDIuIFJ1biB0aGUgZm9sbG93aW5nIHN0
ZXBzIGluIHBhcmFsbGVsOgotICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+cG9zdFRhc2so
W3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShw
cm9taXNlKSwgdHlwZV0oYXV0byYpIG11dGFibGUgeworICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKS0+cG9zdFRhc2soW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHByb21p
c2UgPSBXVEZNb3ZlKHByb21pc2UpLCB0eXBlXShhdXRvJikgbXV0YWJsZSB7CiAgICAgICAgIGlm
ICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIC8vIDIuMS4gSWYgdGhl
IHJlc3VsdCBvZiBydW5uaW5nIHJlZmVyZW5jZSBzcGFjZSBpcyBzdXBwb3J0ZWQgZm9yIHR5cGUg
YW5kIHNlc3Npb24gaXMgZmFsc2UsIHF1ZXVlIGEgdGFzayB0byByZWplY3QgcHJvbWlzZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vbWFjL1N5c3RlbVNsZWVwTGlz
dGVuZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvU3lzdGVtU2xl
ZXBMaXN0ZW5lck1hYy5tbQppbmRleCAxN2Y2NDZjOTNmOWEwYjIzMmZhODcyNTdjOTUzNWI0MDk4
ODAzMGQ1Li5hNGMxZGE1MDYwYjU0MDAyYWU3NmJkNjIwN2FmMmQ3OTY1NzhkZDIxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvU3lzdGVtU2xlZXBMaXN0ZW5l
ck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9tYWMvU3lzdGVtU2xl
ZXBMaXN0ZW5lck1hYy5tbQpAQCAtNDYsNyArNDYsNyBAQCBTeXN0ZW1TbGVlcExpc3RlbmVyTWFj
OjpTeXN0ZW1TbGVlcExpc3RlbmVyTWFjKENsaWVudCYgY2xpZW50KQogICAgIE5TTm90aWZpY2F0
aW9uQ2VudGVyICpjZW50ZXIgPSBbW05TV29ya3NwYWNlIHNoYXJlZFdvcmtzcGFjZV0gbm90aWZp
Y2F0aW9uQ2VudGVyXTsKICAgICBOU09wZXJhdGlvblF1ZXVlICpxdWV1ZSA9IFtOU09wZXJhdGlv
blF1ZXVlIG1haW5RdWV1ZV07CiAKLSAgICBhdXRvIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRo
aXMpOworICAgIFdlYWtQdHIgd2Vha1RoaXMgeyAqdGhpcyB9OwogCiAgICAgbV9zbGVlcE9ic2Vy
dmVyID0gW2NlbnRlciBhZGRPYnNlcnZlckZvck5hbWU6TlNXb3Jrc3BhY2VXaWxsU2xlZXBOb3Rp
ZmljYXRpb24gb2JqZWN0Om5pbCBxdWV1ZTpxdWV1ZSB1c2luZ0Jsb2NrOl4oTlNOb3RpZmljYXRp
b24gKikgewogICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt3ZWFrVGhpc10gewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKaW5kZXggMGEyNzllYzUz
OTJmMjFmZGM1ZDU5OTExZTI0MWRlYWNkOTk4NGY5Ni4uZjRkZGNlZmViYmUzZmRkNTA1MDQ2NWQ1
NzYzOWUwZDIxNGY0MjZkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
T2JqZWN0Q2FjaGUuY3BwCkBAIC0yODQsNyArMjg0LDcgQEAgRWxlbWVudCogQVhPYmplY3RDYWNo
ZTo6Y3VycmVudE1vZGFsTm9kZSgpCiAgICAgZm9yIChhdXRvJiBlbGVtZW50IDogbV9tb2RhbEVs
ZW1lbnRzU2V0KSB7CiAgICAgICAgIGlmIChpc05vZGVWaXNpYmxlKGVsZW1lbnQpKSB7CiAgICAg
ICAgICAgICBpZiAoZm9jdXNlZEVsZW1lbnQgJiYgZm9jdXNlZEVsZW1lbnQtPmlzRGVzY2VuZGFu
dE9mKGVsZW1lbnQpKSB7Ci0gICAgICAgICAgICAgICAgbV9jdXJyZW50TW9kYWxFbGVtZW50ID0g
bWFrZVdlYWtQdHIoZWxlbWVudCk7CisgICAgICAgICAgICAgICAgbV9jdXJyZW50TW9kYWxFbGVt
ZW50ID0gZWxlbWVudDsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KIApA
QCAtMjkzLDcgKzI5Myw3IEBAIEVsZW1lbnQqIEFYT2JqZWN0Q2FjaGU6OmN1cnJlbnRNb2RhbE5v
ZGUoKQogICAgIH0KIAogICAgIGlmICghbV9jdXJyZW50TW9kYWxFbGVtZW50KQotICAgICAgICBt
X2N1cnJlbnRNb2RhbEVsZW1lbnQgPSBtYWtlV2Vha1B0cihsYXN0VmlzaWJsZS5nZXQoKSk7Cisg
ICAgICAgIG1fY3VycmVudE1vZGFsRWxlbWVudCA9IGxhc3RWaXNpYmxlLmdldCgpOwogCiAgICAg
cmV0dXJuIG1fY3VycmVudE1vZGFsRWxlbWVudC5nZXQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbi5j
cHAKaW5kZXggMDVhYmM0Y2E1NTY5MjcyYmVmZTFjNDY0M2E3MDcxMDgzMDRjMzZmOC4uMTZiMzRi
OWYxOGY0NTRkYmZkZDBiNTUxMDcxZWRkNWI0N2NjMmE3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbi5j
cHAKQEAgLTQ0LDcgKzQ0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFtZXNwYWNl
IEhUTUxOYW1lczsKICAgICAKIEFjY2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9uOjpBY2Nlc3NpYmls
aXR5TGlzdEJveE9wdGlvbihIVE1MRWxlbWVudCYgZWxlbWVudCkKLSAgICA6IG1fb3B0aW9uRWxl
bWVudChtYWtlV2Vha1B0cihlbGVtZW50KSkKKyAgICA6IG1fb3B0aW9uRWxlbWVudChlbGVtZW50
KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlNZW51TGlzdE9wdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbi5jcHAKaW5kZXggYWVmMDNjYjkyNjljNmRjZjQ1
MDczMmY2YTc0MzgyMzM4ZDc2ZjNjZS4uOWQzY2ZiMDJlYTc3OWViMGZjODM4NWUwNmQyZmYyNzY3
YTFmYmJmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5TWVudUxpc3RPcHRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLmNwcApAQCAtMzcsNyArMzcsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBBY2Nlc3NpYmls
aXR5TWVudUxpc3RPcHRpb246OkFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbihIVE1MT3B0aW9u
RWxlbWVudCYgZWxlbWVudCkKLSAgICA6IG1fZWxlbWVudChtYWtlV2Vha1B0cihlbGVtZW50KSkK
KyAgICA6IG1fZWxlbWVudChlbGVtZW50KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRl
eCBlZTdhYjZjNmMxNjU0NzEyYjg2MTgwMjZiYjQwMmQ3ODJlNjg5OGZiLi5kZmVmMGVjNGQ4MWY5
ZDAwNDU0NDgxMzUwNGMyNjU2ZjU3ZTY2OWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTEy
Miw3ICsxMjIsNyBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0OjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KFJlbmRlck9iamVjdCogcmVu
ZGVyZXIpCiAgICAgOiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdChyZW5kZXJlci0+bm9kZSgpKQot
ICAgICwgbV9yZW5kZXJlcihtYWtlV2Vha1B0cihyZW5kZXJlcikpCisgICAgLCBtX3JlbmRlcmVy
KHJlbmRlcmVyKQogewogI2lmbmRlZiBOREVCVUcKICAgICBtX3JlbmRlcmVyLT5zZXRIYXNBWE9i
amVjdCh0cnVlKTsKQEAgLTE2Niw3ICsxNjYsNyBAQCBSZW5kZXJCb3hNb2RlbE9iamVjdCogQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6cmVuZGVyQm94TW9kZWxPYmplY3QoKSBjb25zdAogCiB2
b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNldFJlbmRlcmVyKFJlbmRlck9iamVjdCog
cmVuZGVyZXIpCiB7Ci0gICAgbV9yZW5kZXJlciA9IG1ha2VXZWFrUHRyKHJlbmRlcmVyKTsKKyAg
ICBtX3JlbmRlcmVyID0gcmVuZGVyZXI7CiAgICAgc2V0Tm9kZShyZW5kZXJlci0+bm9kZSgpKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5U1ZHUm9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlTVkdSb290LmNwcAppbmRleCAxZjUwYTZiZmQ5YjI1Y2ZiZTM4ZTA0ZWE3ZjIwMmJkNGM5ZDNk
N2FlLi5hOWNiMjNhYjJlMDcyM2E4NGE4NmJkNzBmMzlmYTk3NTEyZTA3MTJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTVkdSb290LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTVkdSb290LmNw
cApAQCAtNTIsNyArNTIsNyBAQCBSZWY8QWNjZXNzaWJpbGl0eVNWR1Jvb3Q+IEFjY2Vzc2liaWxp
dHlTVkdSb290OjpjcmVhdGUoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKIAogdm9pZCBBY2Nlc3Np
YmlsaXR5U1ZHUm9vdDo6c2V0UGFyZW50KEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QqIHBhcmVu
dCkKIHsKLSAgICBtX3BhcmVudCA9IG1ha2VXZWFrUHRyKHBhcmVudCk7CisgICAgbV9wYXJlbnQg
PSBwYXJlbnQ7CiB9CiAgICAgCiBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5U1ZH
Um9vdDo6cGFyZW50T2JqZWN0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5jcHAKaW5kZXggNGFmMWVjYjdl
ZGFlOWNlYzJhZTlmZTVhMzdhMjJhM2Y0OWIwYmE4NS4uMjAwODljOTU4OWFiY2IxNDVjYjM0OThi
YmRjZDE5MWQ4MjE4OWY5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5jcHAKQEAgLTM4LDcgKzM4LDcgQEAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAKIEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3OjpBY2Nlc3Np
YmlsaXR5U2Nyb2xsVmlldyhTY3JvbGxWaWV3KiB2aWV3KQotICAgIDogbV9zY3JvbGxWaWV3KG1h
a2VXZWFrUHRyKHZpZXcpKQorICAgIDogbV9zY3JvbGxWaWV3KHZpZXcpCiAgICAgLCBtX2NoaWxk
cmVuRGlydHkoZmFsc2UpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlSb290QXRzcGkuY3BwIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5Um9vdEF0c3BpLmNwcAppbmRleCA4MmI1
Nzg5MmM0YjJlNTM5ODA0OTNlNDY2ZjBmZjc2MzJhOTJiMGRhLi5lYmJjMDM3N2U4NmIzOTI5YzQ2
MDZiY2VmM2QwNmY2NjRhMTg1ZjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlSb290QXRzcGkuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0eVJvb3RBdHNwaS5jcHAKQEAgLTM5
LDcgKzM5LDcgQEAgUmVmPEFjY2Vzc2liaWxpdHlSb290QXRzcGk+IEFjY2Vzc2liaWxpdHlSb290
QXRzcGk6OmNyZWF0ZShjb25zdCBQYWdlJiBwYWdlLCBBY2MKIAogQWNjZXNzaWJpbGl0eVJvb3RB
dHNwaTo6QWNjZXNzaWJpbGl0eVJvb3RBdHNwaShjb25zdCBQYWdlJiBwYWdlLCBBY2Nlc3NpYmls
aXR5QXRzcGkmIGF0c3BpKQogICAgIDogbV9hdHNwaShhdHNwaSkKLSAgICAsIG1fcGFnZShtYWtl
V2Vha1B0cihwYWdlKSkKKyAgICAsIG1fcGFnZShwYWdlKQogewogICAgIFJFTEVBU0VfQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9BbmltYXRpb25FZmZlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25F
ZmZlY3QuaAppbmRleCA1YTg1ZWUwYTljNzY2YjI2YjY5NzY5MjBhNmRlNDkzOTQwNmQ4ZWMxLi5k
N2QzOTcyY2FjNmY0ZjQ5NTI3ZTdhNjViNGFkOGIzNWFiN2U0YWNhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9uRWZmZWN0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYW5pbWF0aW9uL0FuaW1hdGlvbkVmZmVjdC5oCkBAIC03MSw3ICs3MSw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0aW9uVGltZWxpbmVEaWRDaGFuZ2UoQW5pbWF0aW9uVGlt
ZWxpbmUqKSA9IDA7CiAKICAgICBXZWJBbmltYXRpb24qIGFuaW1hdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1fYW5pbWF0aW9uLmdldCgpOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldEFuaW1hdGlvbihX
ZWJBbmltYXRpb24qIGFuaW1hdGlvbikgeyBtX2FuaW1hdGlvbiA9IG1ha2VXZWFrUHRyKGFuaW1h
dGlvbik7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0QW5pbWF0aW9uKFdlYkFuaW1hdGlvbiogYW5p
bWF0aW9uKSB7IG1fYW5pbWF0aW9uID0gYW5pbWF0aW9uOyB9CiAKICAgICBTZWNvbmRzIGRlbGF5
KCkgY29uc3QgeyByZXR1cm4gbV9kZWxheTsgfQogICAgIHZvaWQgc2V0RGVsYXkoY29uc3QgU2Vj
b25kcyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTU3R5bGVJ
bWFnZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1N0eWxlSW1hZ2VW
YWx1ZS5jcHAKaW5kZXggYzhmZmIxZjAwZTJkZDBmMWI5YWFlMzY0OGYxMGQ2ZTg1NWY2Mjk0Mi4u
NTMyYjQ4Y2QxZWI2YjAwNzhlM2MyOTBiYTUwMGNhNDk0ZTJmZmM1OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTU3R5bGVJbWFnZVZhbHVlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NTdHlsZUltYWdlVmFsdWUuY3BwCkBAIC00Miw3ICs0
Miw3IEBAIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChDU1NTdHlsZUltYWdlVmFsdWUpOwog
CiBDU1NTdHlsZUltYWdlVmFsdWU6OkNTU1N0eWxlSW1hZ2VWYWx1ZShSZWY8Q1NTSW1hZ2VWYWx1
ZT4mJiBjc3NWYWx1ZSwgRG9jdW1lbnQqIGRvY3VtZW50KQogICAgIDogbV9jc3NWYWx1ZShXVEZN
b3ZlKGNzc1ZhbHVlKSkKLSAgICAsIG1fZG9jdW1lbnQobWFrZVdlYWtQdHIoZG9jdW1lbnQpKQor
ICAgICwgbV9kb2N1bWVudChkb2N1bWVudCkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0Fib3J0U2lnbmFsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BYm9ydFNpZ25h
bC5jcHAKaW5kZXggNTNjNTFiNjc1ZGRlYjBkODc1NWZkYzFiYWI0OWY5NzhjMTdlMjA2YS4uMTEx
OGNiZWFlNTg2M2E3MDY5NjYwZmZmNzljZTQ4NmQwNTllYWVkZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0Fib3J0U2lnbmFsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQWJv
cnRTaWduYWwuY3BwCkBAIC04NCw4ICs4NCw4IEBAIHZvaWQgQWJvcnRTaWduYWw6OnNpZ25hbEZv
bGxvdyhBYm9ydFNpZ25hbCYgc2lnbmFsKQogICAgIH0KIAogICAgIEFTU0VSVCghbV9mb2xsb3dp
bmdTaWduYWwpOwotICAgIG1fZm9sbG93aW5nU2lnbmFsID0gbWFrZVdlYWtQdHIoc2lnbmFsKTsK
LSAgICBzaWduYWwuYWRkQWxnb3JpdGhtKFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXSB7
CisgICAgbV9mb2xsb3dpbmdTaWduYWwgPSBzaWduYWw7CisgICAgc2lnbmFsLmFkZEFsZ29yaXRo
bShbd2Vha1RoaXMgPSBXZWFrUHRyIHsgdGhpcyB9XSB7CiAgICAgICAgIGlmICh3ZWFrVGhpcykK
ICAgICAgICAgICAgIHdlYWtUaGlzLT5zaWduYWxBYm9ydCgpOwogICAgIH0pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKaW5kZXggOGUxNmY2ODdiMGY2NTkxMGI4MGU1MWE5NjJmNjNjNmQwMjJmZjcw
YS4uNzE1ZDVmMDc5NmE2NWQ0NzBkYTllZjAzZTJiY2E5MTRkNmIwMmRkMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCkBAIC04NjQxLDcgKzg2NDEsNyBAQCB2b2lkIERvY3VtZW50OjpkaWRMb2dN
ZXNzYWdlKGNvbnN0IFdURkxvZ0NoYW5uZWwmIGNoYW5uZWwsIFdURkxvZ0xldmVsIGxldmVsLCBW
ZQogICAgIGlmIChtZXNzYWdlU291cmNlID09IE1lc3NhZ2VTb3VyY2U6Ok90aGVyKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6SW50ZXJu
YWxBc3luY1Rhc2ssIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgbGV2ZWwsIG1lc3Nh
Z2VTb3VyY2UsIGxvZ01lc3NhZ2VzID0gV1RGTW92ZShsb2dNZXNzYWdlcyldKCkgbXV0YWJsZSB7
CisgICAgZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3VyY2U6OkludGVybmFsQXN5bmNUYXNr
LCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgbGV2ZWwsIG1lc3NhZ2VTb3VyY2UsIGxv
Z01lc3NhZ2VzID0gV1RGTW92ZShsb2dNZXNzYWdlcyldKCkgbXV0YWJsZSB7CiAgICAgICAgIGlm
ICghd2Vha1RoaXMgfHwgIXdlYWtUaGlzLT5wYWdlKCkpCiAgICAgICAgICAgICByZXR1cm47CiAK
QEAgLTg4NTYsNyArODg1Niw3IEBAIHZvaWQgRG9jdW1lbnQ6OmRpZFJlamVjdFN5bmNYSFJEdXJp
bmdQYWdlRGlzbWlzc2FsKCkKICAgICBpZiAobV9udW1iZXJPZlJlamVjdGVkU3luY1hIUnMgPiAx
KQogICAgICAgICByZXR1cm47CiAKLSAgICBwb3N0VGFzayhbdGhpcywgd2Vha1RoaXMgPSBtYWtl
V2Vha1B0cigqdGhpcyldKGF1dG8mKSBtdXRhYmxlIHsKKyAgICBwb3N0VGFzayhbdGhpcywgd2Vh
a1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0oYXV0byYpIG11dGFibGUgewogICAgICAgICBpZiAo
d2Vha1RoaXMpCiAgICAgICAgICAgICBtX251bWJlck9mUmVqZWN0ZWRTeW5jWEhScyA9IDA7CiAg
ICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRTdG9yYWdlQWNj
ZXNzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0b3JhZ2VBY2Nlc3MuY3BwCmlu
ZGV4IDZlMDM3Nzg5NzE3YmFjNmFmMmM2ZDFkMTRjMTNlNDVjZmQ5ZDlmNTMuLmVlOGMyNWU4YWI2
MmVkNGNiZGNlOTY3ZjM5NjZkNmJhMzNlYWQwZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudFN0b3JhZ2VBY2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudFN0b3JhZ2VBY2Nlc3MuY3BwCkBAIC0xMjMsNyArMTIzLDcgQEAgdm9pZCBEb2N1bWVu
dFN0b3JhZ2VBY2Nlc3M6Omhhc1N0b3JhZ2VBY2Nlc3MoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBw
cm9taXNlKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgcGFnZS0+Y2hyb21lKCkuY2xp
ZW50KCkuaGFzU3RvcmFnZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbjo6dW5jaGVja2VkQ3JlYXRl
RnJvbUhvc3QobV9kb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLmhvc3QoKSksIFJlZ2lzdHJhYmxl
RG9tYWluOjp1bmNoZWNrZWRDcmVhdGVGcm9tSG9zdChtX2RvY3VtZW50LnRvcE9yaWdpbigpLmhv
c3QoKSksICpmcmFtZSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBwcm9taXNlID0g
V1RGTW92ZShwcm9taXNlKV0gKGJvb2wgaGFzQWNjZXNzKSB7CisgICAgcGFnZS0+Y2hyb21lKCku
Y2xpZW50KCkuaGFzU3RvcmFnZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbjo6dW5jaGVja2VkQ3Jl
YXRlRnJvbUhvc3QobV9kb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLmhvc3QoKSksIFJlZ2lzdHJh
YmxlRG9tYWluOjp1bmNoZWNrZWRDcmVhdGVGcm9tSG9zdChtX2RvY3VtZW50LnRvcE9yaWdpbigp
Lmhvc3QoKSksICpmcmFtZSwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHByb21pc2Ug
PSBXVEZNb3ZlKHByb21pc2UpXSAoYm9vbCBoYXNBY2Nlc3MpIHsKICAgICAgICAgaWYgKCF3ZWFr
VGhpcykKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMTk5LDcgKzE5OSw3IEBAIHZvaWQgRG9j
dW1lbnRTdG9yYWdlQWNjZXNzOjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhSZWY8RGVmZXJyZWRQcm9t
aXNlPiYmIHByb21pc2UpCiAgICAgaWYgKCFwYWdlLT5zZXR0aW5ncygpLnN0b3JhZ2VBY2Nlc3NB
UElQZXJQYWdlU2NvcGVFbmFibGVkKCkpCiAgICAgICAgIG1fc3RvcmFnZUFjY2Vzc1Njb3BlID0g
U3RvcmFnZUFjY2Vzc1Njb3BlOjpQZXJGcmFtZTsKIAotICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVu
dCgpLnJlcXVlc3RTdG9yYWdlQWNjZXNzKFJlZ2lzdHJhYmxlRG9tYWluOjp1bmNoZWNrZWRDcmVh
dGVGcm9tSG9zdChtX2RvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkuaG9zdCgpKSwgUmVnaXN0cmFi
bGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21Ib3N0KG1fZG9jdW1lbnQudG9wT3JpZ2luKCku
aG9zdCgpKSwgKmZyYW1lLCBtX3N0b3JhZ2VBY2Nlc3NTY29wZSwgW3RoaXMsIHdlYWtUaGlzID0g
bWFrZVdlYWtQdHIoKnRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKFJlcXVlc3RT
dG9yYWdlQWNjZXNzUmVzdWx0IHJlc3VsdCkgbXV0YWJsZSB7CisgICAgcGFnZS0+Y2hyb21lKCku
Y2xpZW50KCkucmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tl
ZENyZWF0ZUZyb21Ib3N0KG1fZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKS5ob3N0KCkpLCBSZWdp
c3RyYWJsZURvbWFpbjo6dW5jaGVja2VkQ3JlYXRlRnJvbUhvc3QobV9kb2N1bWVudC50b3BPcmln
aW4oKS5ob3N0KCkpLCAqZnJhbWUsIG1fc3RvcmFnZUFjY2Vzc1Njb3BlLCBbdGhpcywgd2Vha1Ro
aXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldIChSZXF1
ZXN0U3RvcmFnZUFjY2Vzc1Jlc3VsdCByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAoIXdl
YWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC0yNjYsNyArMjY2LDcgQEAgdm9pZCBE
b2N1bWVudFN0b3JhZ2VBY2Nlc3M6OnJlcXVlc3RTdG9yYWdlQWNjZXNzUXVpcmsoUmVnaXN0cmFi
bGVEb21haW4mJiByZXF1ZXMKIAogICAgIGF1dG8gdG9wRnJhbWVEb21haW4gPSBSZWdpc3RyYWJs
ZURvbWFpbihtX2RvY3VtZW50LnRvcERvY3VtZW50KCkudXJsKCkpOwogCi0gICAgbV9kb2N1bWVu
dC5mcmFtZSgpLT5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLnJlcXVlc3RTdG9yYWdlQWNjZXNz
KFdURk1vdmUocmVxdWVzdGluZ0RvbWFpbiksIFdURk1vdmUodG9wRnJhbWVEb21haW4pLCAqbV9k
b2N1bWVudC5mcmFtZSgpLCBtX3N0b3JhZ2VBY2Nlc3NTY29wZSwgW3RoaXMsIHdlYWtUaGlzID0g
bWFrZVdlYWtQdHIoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpXSAoUmVxdWVzdFN0b3JhZ2VBY2Nlc3NSZXN1bHQgcmVzdWx0KSBtdXRhYmxlIHsK
KyAgICBtX2RvY3VtZW50LmZyYW1lKCktPnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkucmVxdWVz
dFN0b3JhZ2VBY2Nlc3MoV1RGTW92ZShyZXF1ZXN0aW5nRG9tYWluKSwgV1RGTW92ZSh0b3BGcmFt
ZURvbWFpbiksICptX2RvY3VtZW50LmZyYW1lKCksIG1fc3RvcmFnZUFjY2Vzc1Njb3BlLCBbdGhp
cywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKFJlcXVlc3RTdG9yYWdlQWNjZXNzUmVzdWx0IHJlc3Vs
dCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwCmluZGV4IGNmZGMxOTFjZDVkY2EyMTg1NWJk
MWNhZDFjYmJkZjkwZmE4YzI3NzkuLjFkNTMxNGVhZmY4YjA4MWMzM2RhYWI2YjY1MDE0NDcxNmYz
ODNkN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNwcApAQCAtOTgsNyArOTgsNyBAQCBi
b29sIEV2ZW50VGFyZ2V0OjphZGRFdmVudExpc3RlbmVyKGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50
VHlwZSwgUmVmPEV2ZW50TGlzdGVuZQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAo
b3B0aW9ucy5zaWduYWwpIHsKLSAgICAgICAgb3B0aW9ucy5zaWduYWwtPmFkZEFsZ29yaXRobShb
d2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIGV2ZW50VHlwZSwgbGlzdGVuZXIgPSBtYWtl
V2Vha1B0cihsaXN0ZW5lci5nZXQoKSksIGNhcHR1cmUgPSBvcHRpb25zLmNhcHR1cmVdIHsKKyAg
ICAgICAgb3B0aW9ucy5zaWduYWwtPmFkZEFsZ29yaXRobShbd2Vha1RoaXMgPSBXZWFrUHRyIHsg
KnRoaXMgfSwgZXZlbnRUeXBlLCBsaXN0ZW5lciA9IG1ha2VXZWFrUHRyKGxpc3RlbmVyLmdldCgp
KSwgY2FwdHVyZSA9IG9wdGlvbnMuY2FwdHVyZV0gewogICAgICAgICAgICAgaWYgKHdlYWtUaGlz
ICYmIGxpc3RlbmVyKQogICAgICAgICAgICAgICAgIHdlYWtUaGlzLT5yZW1vdmVFdmVudExpc3Rl
bmVyKGV2ZW50VHlwZSwgKmxpc3RlbmVyLCBjYXB0dXJlKTsKICAgICAgICAgfSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcAppbmRleCBhNzU5Y2FmNGI2NTJlMDE2ZTMy
OGJjYzNjNDA3OWU1MDI2MGZlYjQ1Li5mODNlMjg1MjlkODE4ZjY2YTNhM2YxZDdhOThkMTJmMTNi
YmYzZGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5jcHAKQEAgLTYz
LDcgKzYzLDcgQEAgdm9pZCBGdWxsc2NyZWVuTWFuYWdlcjo6cmVxdWVzdEZ1bGxzY3JlZW5Gb3JF
bGVtZW50KEVsZW1lbnQqIGVsZW1lbnQsIEZ1bGxzY3JlZW4KICAgICBpZiAoIWVsZW1lbnQpCiAg
ICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudEVsZW1lbnQoKTsKIAotICAgIGF1dG8gZmFpbGVkUHJl
ZmxpZ2h0cyA9IFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0oYXV0byBlbGVt
ZW50KSBtdXRhYmxlIHsKKyAgICBhdXRvIGZhaWxlZFByZWZsaWdodHMgPSBbdGhpcywgd2Vha1Ro
aXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0oYXV0byBlbGVtZW50KSBtdXRhYmxlIHsKICAgICAgICAg
bV9mdWxsc2NyZWVuRXJyb3JFdmVudFRhcmdldFF1ZXVlLmFwcGVuZChXVEZNb3ZlKGVsZW1lbnQp
KTsKICAgICAgICAgbV9kb2N1bWVudC5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6
TWVkaWFFbGVtZW50LCBbd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKV0oKSBtdXRhYmxlIHsK
ICAgICAgICAgICAgIGlmICh3ZWFrVGhpcykKQEAgLTExNiw3ICsxMTYsNyBAQCB2b2lkIEZ1bGxz
Y3JlZW5NYW5hZ2VyOjpyZXF1ZXN0RnVsbHNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVu
dCwgRnVsbHNjcmVlbgogCiAgICAgbV9wZW5kaW5nRnVsbHNjcmVlbkVsZW1lbnQgPSBlbGVtZW50
OwogCi0gICAgbV9kb2N1bWVudC5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6TWVk
aWFFbGVtZW50LCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIGVsZW1lbnQg
PSBSZWZQdHIgeyBlbGVtZW50IH0sIGNoZWNrVHlwZSwgaGFzS2V5Ym9hcmRBY2Nlc3MsIGZhaWxl
ZFByZWZsaWdodHMsIGlkZW50aWZpZXIgPSBMT0dJREVOVElGSUVSXSAoKSBtdXRhYmxlIHsKKyAg
ICBtX2RvY3VtZW50LmV2ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpNZWRpYUVsZW1l
bnQsIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBlbGVtZW50ID0gUmVmUHRy
IHsgZWxlbWVudCB9LCBjaGVja1R5cGUsIGhhc0tleWJvYXJkQWNjZXNzLCBmYWlsZWRQcmVmbGln
aHRzLCBpZGVudGlmaWVyID0gTE9HSURFTlRJRklFUl0gKCkgbXV0YWJsZSB7CiAgICAgICAgIGlm
ICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTMzNSw3ICszMzUsNyBAQCB2
b2lkIEZ1bGxzY3JlZW5NYW5hZ2VyOjpleGl0RnVsbHNjcmVlbigpCiAKICAgICAvLyA2LiBSZXR1
cm4sIGFuZCBydW4gdGhlIHJlbWFpbmluZyBzdGVwcyBhc3luY2hyb25vdXNseS4KICAgICAvLyA3
LiBPcHRpb25hbGx5LCBwZXJmb3JtIHNvbWUgYW5pbWF0aW9uLgotICAgIG1fZG9jdW1lbnQuZXZl
bnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3VyY2U6Ok1lZGlhRWxlbWVudCwgW3RoaXMsIHdlYWtU
aGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBuZXdUb3AgPSBSZWZQdHIgeyBuZXdUb3AgfSwgZnVs
bHNjcmVlbkVsZW1lbnQgPSBtX2Z1bGxzY3JlZW5FbGVtZW50LCBpZGVudGlmaWVyID0gTE9HSURF
TlRJRklFUl0geworICAgIG1fZG9jdW1lbnQuZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3Vy
Y2U6Ok1lZGlhRWxlbWVudCwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIG5l
d1RvcCA9IFJlZlB0ciB7IG5ld1RvcCB9LCBmdWxsc2NyZWVuRWxlbWVudCA9IG1fZnVsbHNjcmVl
bkVsZW1lbnQsIGlkZW50aWZpZXIgPSBMT0dJREVOVElGSUVSXSB7CiAgICAgICAgIGlmICghd2Vh
a1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9UZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5jcHAKaW5kZXggYzM3MmFlY2VmNGU5
N2ZiM2IxYzEzZmVlYmFhNWQ3NGYxODlkY2UxNC4uYzRhNGZiYTFkMDAzNDZkZjQ2NzAyMzMwNTQz
OTk0ZTNmZDEwOTkzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0TWFu
aXB1bGF0aW9uQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0
TWFuaXB1bGF0aW9uQ29udHJvbGxlci5jcHAKQEAgLTU3NCw3ICs1NzQsNyBAQCB2b2lkIFRleHRN
YW5pcHVsYXRpb25Db250cm9sbGVyOjpzY2hlZHVsZU9ic2VydmF0aW9uVXBkYXRlKCkKIAogICAg
IG1fZGlkU2NoZWR1bGVPYnNlcnZhdGlvblVwZGF0ZSA9IHRydWU7CiAKLSAgICBtX2RvY3VtZW50
LT5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6SW50ZXJuYWxBc3luY1Rhc2ssIFt3
ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0geworICAgIG1fZG9jdW1lbnQtPmV2ZW50TG9v
cCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpJbnRlcm5hbEFzeW5jVGFzaywgW3dlYWtUaGlzID0g
V2Vha1B0ciB7ICp0aGlzIH1dIHsKICAgICAgICAgYXV0byogY29udHJvbGxlciA9IHdlYWtUaGlz
LmdldCgpOwogICAgICAgICBpZiAoIWNvbnRyb2xsZXIpCiAgICAgICAgICAgICByZXR1cm47CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAppbmRleCBmNTBiYjVkZDM5NDA0YTE1ZDBi
NzY3NGQ4NWE1NzNmMjg1NjA5MjliLi40MGIwMTJhOWFkZmJkNGY1ZTI2NTg4MDUwOWUzNjY0MjY2
OWE2ODNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKQEAgLTQzNyw3ICs0
MzcsNyBAQCB2b2lkIEZpbGVJbnB1dFR5cGU6OmZpbGVzQ2hvc2VuKGNvbnN0IFZlY3RvcjxGaWxl
Q2hvb3NlckZpbGVJbmZvPiYgcGF0aHMsIGNvbnN0CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBtX2RpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvciA9IERpcmVjdG9yeUZpbGVMaXN0Q3JlYXRv
cjo6Y3JlYXRlKFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgaWNvbiA9IFJl
ZlB0ciB7IGljb24gfV0oUmVmPEZpbGVMaXN0PiYmIGZpbGVMaXN0KSBtdXRhYmxlIHsKKyAgICBt
X2RpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvciA9IERpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvcjo6Y3Jl
YXRlKFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBpY29uID0gUmVmUHRyIHsg
aWNvbiB9XShSZWY8RmlsZUxpc3Q+JiYgZmlsZUxpc3QpIG11dGFibGUgewogICAgICAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOwogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAg
cmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2Fn
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcAppbmRleCBl
MDUxYzdlYTBiZmYxZjIwMzg2NTU4NTZkZWU3MTEwOGE2OGE0ZmIwLi43NTMxMTE0NWExYmY1YjE3
MDIzY2I2NzNhZWI2M2ZjZjFmMjhjZTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1ZhbGlkYXRpb25NZXNzYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRp
b25NZXNzYWdlLmNwcApAQCAtMjI4LDcgKzIyOCw3IEBAIHZvaWQgVmFsaWRhdGlvbk1lc3NhZ2U6
OmJ1aWxkQnViYmxlVHJlZSgpCiAKICAgICBpZiAoIWRvY3VtZW50LnZpZXcoKSkKICAgICAgICAg
cmV0dXJuOwotICAgIGRvY3VtZW50LnZpZXcoKS0+cXVldWVQb3N0TGF5b3V0Q2FsbGJhY2soW3dl
YWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSB7CisgICAgZG9jdW1lbnQudmlldygpLT5xdWV1
ZVBvc3RMYXlvdXRDYWxsYmFjayhbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0gewogICAg
ICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB3ZWFrVGhp
cy0+YWRqdXN0QnViYmxlUG9zaXRpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L01lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxl
bWVudC5jcHAKaW5kZXggMzQ4MTk2ZmEyMjAyYjkwZTJkODU4M2M0YjIxN2RmNjU3MmU0Y2RkMy4u
MjY3ZjZjOTU3YjhiNjUwOWRhODQwOTZjNGYxODAxZTc0YzFjMzUwNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sVGV4
dFRyYWNrQ29udGFpbmVyRWxlbWVudC5jcHAKQEAgLTM4Nyw3ICszODcsNyBAQCB2b2lkIE1lZGlh
Q29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OnVwZGF0ZVNpemVzKEZvcmNlVXBkYXRl
IGZvcmNlKQogICAgIGZvciAoYXV0byYgYWN0aXZlQ3VlIDogbV9tZWRpYUVsZW1lbnQtPmN1cnJl
bnRseUFjdGl2ZUN1ZXMoKSkKICAgICAgICAgYWN0aXZlQ3VlLmRhdGEoKS0+cmVjYWxjdWxhdGVT
dHlsZXMoKTsKIAotICAgIGRvY3VtZW50KCkuZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3Vy
Y2U6Ok1lZGlhRWxlbWVudCwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSAoKSB7Cisg
ICAgZG9jdW1lbnQoKS5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6TWVkaWFFbGVt
ZW50LCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0gKCkgewogICAgICAgICBpZiAod2Vh
a1RoaXMpCiAgICAgICAgICAgICB3ZWFrVGhpcy0+dXBkYXRlRGlzcGxheSgpOwogICAgIH0pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQVBJ
RGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmRBUElEaXNwYXRjaGVyLmNwcAppbmRleCAwOWVkOTA0ZjNhYTE2M2Y1YTUyYzU1YzBjOGQ3MDc5
Y2E2NWFmZGRjLi4xNjgwY2RiMzVlYjNjYzcxODVlMmI3YmJkYzU3MjA4NmU0MmNmNGZjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNw
YXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmRBUElEaXNwYXRjaGVyLmNwcApAQCAtMTg4LDcgKzE4OCw3IEBAIHZvaWQgSW5zcGVjdG9yRnJv
bnRlbmRBUElEaXNwYXRjaGVyOjpldmFsdWF0ZU9yUXVldWVFeHByZXNzaW9uKGNvbnN0IFN0cmlu
ZyYgZXhwCiAgICAgLy8gSWYgdGhlIHJlc3VsdCBpcyBhIHByb21pc2UsIGNhbGwgdGhlIHJlc3Vs
dCBoYW5kbGVyIHdoZW4gdGhlIHByb21pc2Ugc2V0dGxlcy4KICAgICBSZWY8RE9NUHJvbWlzZT4g
cHJvbWlzZSA9IERPTVByb21pc2U6OmNyZWF0ZSgqZ2xvYmFsT2JqZWN0LCAqY2FzdGVkUHJvbWlz
ZSk7CiAgICAgbV9wZW5kaW5nUmVzcG9uc2VzLnNldChwcm9taXNlLmNvcHlSZWYoKSwgV1RGTW92
ZShvcHRpb25hbFJlc3VsdEhhbmRsZXIpKTsKLSAgICBhdXRvIGlzUmVnaXN0ZXJlZCA9IHByb21p
c2UtPndoZW5TZXR0bGVkKFtwcm9taXNlID0gcHJvbWlzZS5jb3B5UmVmKCksIHdlYWtUaGlzID0g
bWFrZVdlYWtQdHIoKnRoaXMpXSB7CisgICAgYXV0byBpc1JlZ2lzdGVyZWQgPSBwcm9taXNlLT53
aGVuU2V0dGxlZChbcHJvbWlzZSA9IHByb21pc2UuY29weVJlZigpLCB3ZWFrVGhpcyA9IFdlYWtQ
dHIgeyAqdGhpcyB9XSB7CiAgICAgICAgIC8vIElmIGB0aGlzYCBpcyBjbGVhcmVkIG9yIHRoZSBy
ZXNwb25zZXMgbWFwIGlzIGVtcHR5LCB0aGVuIHRoZSBwcm9taXNlIHNldHRsZWQKICAgICAgICAg
Ly8gYmV5b25kIHRoZSB0aW1lIHdoZW4gd2UgY2FyZSBhYm91dCBpdHMgcmVzdWx0LiBJZ25vcmUg
bGF0ZS1zZXR0bGVkIHByb21pc2VzLgogICAgICAgICAvLyBXZSBjbGVhciBvdXQgY29tcGxldGlv
biBoYW5kbGVycyBmb3IgcGVuZGluZyByZXNwb25zZXMgZHVyaW5nIHRlYXJkb3duLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDYW52YXNBZ2Vu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0Fn
ZW50LmNwcAppbmRleCAxNDQyY2QzY2QzZmVhMGUxMzFjMGRlM2I2MzIxODE2ZWNkMmJmZDVkLi42
NzY2ZjBjM2ViYTAwY2I4OTA0MDYwZjY4MDNlOTRlZjU0Mzg1Y2JhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmNw
cApAQCAtNTk0LDcgKzU5NCw3IEBAIHZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OnJlY29yZEFj
dGlvbihDYW52YXNSZW5kZXJpbmdDb250ZXh0JiBjYW52YXNSZW5kZXJpbmdDCiAgICAgLy8gT25s
eSBlbnF1ZXVlIG9uZSBtaWNyb3Rhc2sgZm9yIGFsbCBhY3RpdmVseSByZWNvcmRpbmcgY2FudmFz
ZXMuCiAgICAgaWYgKG1fcmVjb3JkaW5nQ2FudmFzSWRlbnRpZmllcnMuaXNFbXB0eSgpKSB7CiAg
ICAgICAgIGlmIChhdXRvKiBzY3JpcHRFeGVjdXRpb25Db250ZXh0ID0gaW5zcGVjdG9yQ2FudmFz
LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpIHsKLSAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQtPmV2ZW50TG9vcCgpLnF1ZXVlTWljcm90YXNrKFt3ZWFrVGhpcyA9IG1ha2VXZWFr
UHRyKCp0aGlzKV0geworICAgICAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+ZXZlbnRM
b29wKCkucXVldWVNaWNyb3Rhc2soW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dIHsKICAg
ICAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgICAgICAgICByZXR1cm47
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVM
b2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRl
ci5jcHAKaW5kZXggODEwMjc3NzE2MjI3YTRmOWE2NWQwYTNiNGJjYWFjYzM0NjdmYzk1Yi4uZTA0
YjM3ZjgyYmI2Y2MwODViODc5MjBmOWQxNmVjMTQwYWFhMWU4ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKQEAgLTI3OCw3ICsy
NzgsNyBAQCB2b2lkIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6Y29tcHV0ZUlzRG9uZSgpCiAg
ICAgICAgICAgICBtX2NsaWVudC0+bm90aWZ5SXNEb25lKG1fYXN5bmMgJiYgIW1fcHJlZmxpZ2h0
Q2hlY2tlciAmJiAhbV9yZXNvdXJjZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgcGxh
dGZvcm1TdHJhdGVnaWVzKCktPmxvYWRlclN0cmF0ZWd5KCktPmlzUmVzb3VyY2VMb2FkRmluaXNo
ZWQoKm1fcmVzb3VyY2UsIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0oYm9v
bCBpc0RvbmUpIHsKKyAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9hZGVyU3RyYXRlZ3koKS0+
aXNSZXNvdXJjZUxvYWRGaW5pc2hlZCgqbV9yZXNvdXJjZSwgW3RoaXMsIHdlYWtUaGlzID0gV2Vh
a1B0ciB7ICp0aGlzIH1dKGJvb2wgaXNEb25lKSB7CiAgICAgICAgIGlmICh3ZWFrVGhpcyAmJiBt
X2NsaWVudCkKICAgICAgICAgICAgIG1fY2xpZW50LT5ub3RpZnlJc0RvbmUoaXNEb25lKTsKICAg
ICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0NvbnRlbnRDaGFuZ2VP
YnNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9Db250ZW50Q2hhbmdlT2JzZXJ2
ZXIuY3BwCmluZGV4IDQ1OTgyMmE1OTVjMjMzYWVhZmRjNTc0ZThhM2E1NTk0MmMzNWVmYzQuLjlm
OGM1NjcwYzIxNTkzMTIyM2M5MTk0ZmMzMzM2NWRiYjY5ZjY5MGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvaW9zL0NvbnRlbnRDaGFuZ2VPYnNlcnZlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9pb3MvQ29udGVudENoYW5nZU9ic2VydmVyLmNwcApAQCAtMjUyLDcgKzI1
Miw3IEBAIHZvaWQgQ29udGVudENoYW5nZU9ic2VydmVyOjpkaWRGaW5pc2hUcmFuc2l0aW9uKGNv
bnN0IEVsZW1lbnQmIGVsZW1lbnQsIENTU1Byb3BlCiAgICAgTE9HX1dJVEhfU1RSRUFNKENvbnRl
bnRPYnNlcnZhdGlvbiwgc3RyZWFtIDw8ICJkaWRGaW5pc2hUcmFuc2l0aW9uOiB0cmFuc2l0aW9u
IGZpbmlzaGVkICgiIDw8ICZlbGVtZW50IDw8ICIpLiIpOwogCiAgICAgLy8gaXNDb25zaWRlcmVk
QWN0aW9uYWJsZUNvbnRlbnQgbWF5IHRyaWdnZXIgc3R5bGUgdXBkYXRlIHRocm91Z2ggTm9kZTo6
Y29tcHV0ZUVkaXRhYmlsaXR5LiBMZXQncyBhZGp1c3QgdGhlIHN0YXRlIGluIHRoZSBuZXh0IHJ1
bmxvb3AuCi0gICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhp
cyksIHRhcmdldEVsZW1lbnQgPSBtYWtlV2Vha1B0cihlbGVtZW50KV0geworICAgIGNhbGxPbk1h
aW5UaHJlYWQoW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHRhcmdldEVsZW1lbnQgPSBt
YWtlV2Vha1B0cihlbGVtZW50KV0gewogICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICF0YXJnZXRF
bGVtZW50KQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBpZiAoaXNWaXN1YWxseUhpZGRl
bigqdGFyZ2V0RWxlbWVudCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0RlZmVycmFibGVUYXNrLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EZWZlcnJhYmxlVGFz
ay5oCmluZGV4IDk0YzUzZDJlYzA3YzU5ZGNiNWNkZjZkZGZjZWFkNzlkNTNkOTg5NzYuLmExNDRi
NjE3Y2U3NGZhYjU4MGVlZTI4YTU3ZjMzODQyMmRhM2ZhYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0RlZmVycmFibGVUYXNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vRGVmZXJyYWJsZVRhc2suaApAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiAgICAgICAg
IGNhbmNlbFRhc2soKTsKIAogICAgICAgICBtX2lzUGVuZGluZyA9IHRydWU7Ci0gICAgICAgIGNh
bGxPbk1haW5UaHJlYWQoW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0YXNrID0gV1RG
TW92ZSh0YXNrKV0geworICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt3ZWFrVGhpcyA9IFdlYWtQ
dHIgeyAqdGhpcyB9LCB0YXNrID0gV1RGTW92ZSh0YXNrKV0gewogICAgICAgICAgICAgaWYgKCF3
ZWFrVGhpcykKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICBBU1NFUlQod2Vh
a1RoaXMtPmlzUGVuZGluZygpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL21hYy9BdWRpb0hhcmR3YXJlTGlzdGVuZXJNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYy5jcHAKaW5kZXggN2Rh
ODRhZDVhYzI0Mjg0NTNjZDgyMDFiM2EzYmEwNWM5NjgyOTc4OC4uNWI3NTI2NWM2OGQzYzFlY2I1
NjliOWNjYWI1NDkzNzAzNGQxMmI3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vbWFjL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYy5jcHAKQEAg
LTE1MSw3ICsxNTEsNyBAQCBBdWRpb0hhcmR3YXJlTGlzdGVuZXJNYWM6OkF1ZGlvSGFyZHdhcmVM
aXN0ZW5lck1hYyhDbGllbnQmIGNsaWVudCkKICAgICBzZXRIYXJkd2FyZUFjdGl2aXR5KGlzQXVk
aW9IYXJkd2FyZVByb2Nlc3NSdW5uaW5nKCkpOwogICAgIHNldFN1cHBvcnRlZEJ1ZmZlclNpemVz
KGN1cnJlbnREZXZpY2VTdXBwb3J0ZWRCdWZmZXJTaXplcygpKTsKIAotICAgIGF1dG8gd2Vha1Ro
aXMgPSBtYWtlV2Vha1B0cigqdGhpcyk7CisgICAgV2Vha1B0ciB3ZWFrVGhpcyB7ICp0aGlzIH07
CiAgICAgbV9ibG9jayA9IEJsb2NrX2NvcHkoXihVSW50MzIgY291bnQsIGNvbnN0IEF1ZGlvT2Jq
ZWN0UHJvcGVydHlBZGRyZXNzIHByb3BlcnRpZXNbXSkgewogICAgICAgICBpZiAod2Vha1RoaXMp
CiAgICAgICAgICAgICB3ZWFrVGhpcy0+cHJvcGVydHlDaGFuZ2VkKGNvdW50LCBwcm9wZXJ0aWVz
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Bvd2VyU291cmNl
Tm90aWZpZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Qb3dlclNvdXJjZU5v
dGlmaWVyLm1tCmluZGV4IGVjZDkyMzQ1YmFlOGQ5M2E2MWExODhiZDFjZTVlYTczNmNjYzI3ZWIu
LmRkNzY5MmJlYmViMzAxN2Q2ZGZhMjI1NjhjOWFhNWRmMzI0ZGFjZTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Bvd2VyU291cmNlTm90aWZpZXIubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUG93ZXJTb3VyY2VOb3RpZmllci5tbQpAQCAt
MzcsNyArMzcsNyBAQCBQb3dlclNvdXJjZU5vdGlmaWVyOjpQb3dlclNvdXJjZU5vdGlmaWVyKFBv
d2VyU291cmNlTm90aWZpZXJDYWxsYmFjayYmIGNhbGxiYWNrKQogICAgIDogbV9jYWxsYmFjayhX
VEZNb3ZlKGNhbGxiYWNrKSkKIHsKICAgICBpbnQgdG9rZW4gPSAwOwotICAgIGF1dG8gc3RhdHVz
ID0gbm90aWZ5X3JlZ2lzdGVyX2Rpc3BhdGNoKGtJT1BTTm90aWZ5UG93ZXJTb3VyY2UsICZ0b2tl
biwgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRo
aXMpXSAoaW50KSB7CisgICAgYXV0byBzdGF0dXMgPSBub3RpZnlfcmVnaXN0ZXJfZGlzcGF0Y2go
a0lPUFNOb3RpZnlQb3dlclNvdXJjZSwgJnRva2VuLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgp
LCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0gKGludCkgewogICAgICAgICBpZiAod2Vh
a1RoaXMpCiAgICAgICAgICAgICB3ZWFrVGhpcy0+bm90aWZ5UG93ZXJTb3VyY2VDaGFuZ2VkKCk7
CiAgICAgfSk7CkBAIC00Niw3ICs0Niw3IEBAIFBvd2VyU291cmNlTm90aWZpZXI6OlBvd2VyU291
cmNlTm90aWZpZXIoUG93ZXJTb3VyY2VOb3RpZmllckNhbGxiYWNrJiYgY2FsbGJhY2spCiAKICAg
ICAvLyBJZiB0aGUgY3VycmVudCB2YWx1ZSBvZiBzeXN0ZW1IYXNBQygpIGlzIHVuY2FjaGVkLCBm
b3JjZSBhIG5vdGlmaWNhdGlvbi4KICAgICBpZiAoIWNhY2hlZFN5c3RlbUhhc0FDKCkpIHsKLSAg
ICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0
aGlzKV0geworICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3dlYWtUaGlzID0gV2Vh
a1B0ciB7ICp0aGlzIH1dIHsKICAgICAgICAgICAgIGlmICh3ZWFrVGhpcykKICAgICAgICAgICAg
ICAgICB3ZWFrVGhpcy0+bm90aWZ5UG93ZXJTb3VyY2VDaGFuZ2VkKCk7CiAgICAgICAgIH0pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUmVtb3RlQ29tbWFuZExp
c3RlbmVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9SZW1vdGVDb21t
YW5kTGlzdGVuZXJDb2NvYS5tbQppbmRleCAwY2ExZWM3ZTBjOGNiYmRmMDU0YjJkYzA0YWVkOGZi
ZTJiYjEyYmYyLi5mMzA4YThkMmNhOGU5OGZiY2JmYjA5ZTc0NGQ3MzdlZmQ0YjZhOWYzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9SZW1vdGVDb21tYW5kTGlzdGVu
ZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9SZW1vdGVDb21t
YW5kTGlzdGVuZXJDb2NvYS5tbQpAQCAtMTM1LDcgKzEzNSw3IEBAIFJlbW90ZUNvbW1hbmRMaXN0
ZW5lckNvY29hOjpSZW1vdGVDb21tYW5kTGlzdGVuZXJDb2NvYShSZW1vdGVDb21tYW5kTGlzdGVu
ZXJDbGllCiAKICAgICBzY2hlZHVsZVN1cHBvcnRlZENvbW1hbmRzVXBkYXRlKCk7CiAKLSAgICBh
dXRvIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpOworICAgIFdlYWtQdHIgd2Vha1RoaXMg
eyAqdGhpcyB9OwogICAgIG1fY29tbWFuZEhhbmRsZXIgPSBNUk1lZGlhUmVtb3RlQWRkQXN5bmND
b21tYW5kSGFuZGxlckJsb2NrKF4oTVJNZWRpYVJlbW90ZUNvbW1hbmQgY29tbWFuZCwgQ0ZEaWN0
aW9uYXJ5UmVmIG9wdGlvbnMsIHZvaWQoXmNvbXBsZXRpb24pKENGQXJyYXlSZWYpKSB7CiAKICAg
ICAgICAgTE9HKE1lZGlhLCAiUmVtb3RlQ29tbWFuZExpc3RlbmVyQ29jb2E6OlJlbW90ZUNvbW1h
bmRMaXN0ZW5lckNvY29hIC0gcmVjZWl2ZWQgY29tbWFuZCAldSIsIGNvbW1hbmQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJpdmF0ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcml2YXRlLmNw
cAppbmRleCAxMzkyMTQ2MmMxNGI2MjBhOWU3Mjc2NTVlZDBkMjRjMDg1ZTRlMzY2Li4xYWJmZTgw
ZjlmYWFjZjk0ZTczODhlNTQyOWJkNjcyZDEwMjJhNTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcml2YXRlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcml2YXRlLmNwcApAQCAtNzUsNyAr
NzUsNyBAQCB2b2lkIENETVByaXZhdGU6OmRvU3VwcG9ydGVkQ29uZmlndXJhdGlvblN0ZXAoQ0RN
S2V5U3lzdGVtQ29uZmlndXJhdGlvbiYmIGNhbmRpZAogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgYXV0byBjb25zZW50Q2FsbGJhY2sgPSBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhp
cyksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIGFjY2Vzc10gKENvbnNlbnRTdGF0dXMg
c3RhdHVzLCBDRE1LZXlTeXN0ZW1Db25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbiwgQ0RNUmVz
dHJpY3Rpb25zJiYgcmVzdHJpY3Rpb25zKSBtdXRhYmxlIHsKKyAgICBhdXRvIGNvbnNlbnRDYWxs
YmFjayA9IFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBjYWxsYmFjayA9IFdURk1vdmUo
Y2FsbGJhY2spLCBhY2Nlc3NdIChDb25zZW50U3RhdHVzIHN0YXR1cywgQ0RNS2V5U3lzdGVtQ29u
ZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24sIENETVJlc3RyaWN0aW9ucyYmIHJlc3RyaWN0aW9u
cykgbXV0YWJsZSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpIHsKICAgICAgICAgICAgIGNhbGxi
YWNrKHN0ZDo6bnVsbG9wdCk7CiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVhcktleS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1D
bGVhcktleS5jcHAKaW5kZXggNjhlYjJhODVkMTA1Nzg3OWZjYmMwM2EzMGZiM2YyZGZhMmFlYjZi
Zi4uZWU1NGIwMmFkNzE2ZGU5OTk2ZjNlNDBjOGE1ZDkzNWY2ODNjN2Q4MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RNQ2xlYXJL
ZXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFy
a2V5L0NETUNsZWFyS2V5LmNwcApAQCAtNDY3LDcgKzQ2Nyw3IEBAIHZvaWQgQ0RNSW5zdGFuY2VT
ZXNzaW9uQ2xlYXJLZXk6OnJlcXVlc3RMaWNlbnNlKExpY2Vuc2VUeXBlLCBjb25zdCBBdG9tU3Ry
aW5nJiBpCiAgICAgICAgIGluaXREYXRhID0gZXh0cmFjdEtleUlkRnJvbVdlYk1Jbml0RGF0YShp
bml0RGF0YS5nZXQoKSk7CiAKICAgICBjYWxsT25NYWluVGhyZWFkKAotICAgICAgICBbdGhpcywg
d2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFj
ayksIGluaXREYXRhID0gV1RGTW92ZShpbml0RGF0YSldKCkgbXV0YWJsZSB7CisgICAgICAgIFt0
aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBjYWxsYmFjayA9IFdURk1vdmUoY2Fs
bGJhY2spLCBpbml0RGF0YSA9IFdURk1vdmUoaW5pdERhdGEpXSgpIG11dGFibGUgewogICAgICAg
ICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTQ4Myw3
ICs0ODMsNyBAQCB2b2lkIENETUluc3RhbmNlU2Vzc2lvbkNsZWFyS2V5Ojp1cGRhdGVMaWNlbnNl
KGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkLCBMaWNlbnNlVAogICAgIFVOVVNFRF9QQVJBTShzZXNz
aW9uSWQpOwogI2VuZGlmCiAgICAgYXV0byBkaXNwYXRjaENhbGxiYWNrID0KLSAgICAgICAgW3dl
YWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCAmY2FsbGJhY2tdKGJvb2wgc2Vzc2lvbldhc0Ns
b3NlZCwgc3RkOjpvcHRpb25hbDxLZXlTdGF0dXNWZWN0b3I+JiYgY2hhbmdlZEtleXMsIFN1Y2Nl
c3NWYWx1ZSBzdWNjZWVkZWQpIHsKKyAgICAgICAgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlz
IH0sICZjYWxsYmFja10oYm9vbCBzZXNzaW9uV2FzQ2xvc2VkLCBzdGQ6Om9wdGlvbmFsPEtleVN0
YXR1c1ZlY3Rvcj4mJiBjaGFuZ2VkS2V5cywgU3VjY2Vzc1ZhbHVlIHN1Y2NlZWRlZCkgewogICAg
ICAgICAgICAgY2FsbE9uTWFpblRocmVhZCgKICAgICAgICAgICAgICAgICBbd2Vha1RoaXMgPSBt
YWtlV2Vha1B0cigqd2Vha1RoaXMpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCBzZXNz
aW9uV2FzQ2xvc2VkLCBjaGFuZ2VkS2V5cyA9IFdURk1vdmUoY2hhbmdlZEtleXMpLCBzdWNjZWVk
ZWRdICgpIG11dGFibGUgewogICAgICAgICAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQpAQCAt
NTM4LDcgKzUzOCw3IEBAIHZvaWQgQ0RNSW5zdGFuY2VTZXNzaW9uQ2xlYXJLZXk6OmxvYWRTZXNz
aW9uKExpY2Vuc2VUeXBlLCBjb25zdCBTdHJpbmcmIHNlc3Npb25JCiAKICAgICBBU1NFUlQoc2Vz
c2lvbklkID09IG1fc2Vzc2lvbklEKTsKICAgICBLZXlTdGF0dXNWZWN0b3Iga2V5U3RhdHVzVmVj
dG9yID0gbV9rZXlTdG9yZS5jb252ZXJ0VG9KU0tleVN0YXR1c1ZlY3RvcigpOwotICAgIGNhbGxP
bk1haW5UaHJlYWQoW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBjYWxsYmFjayA9IFdU
Rk1vdmUoY2FsbGJhY2spLCAma2V5U3RhdHVzVmVjdG9yXSgpIG11dGFibGUgeworICAgIGNhbGxP
bk1haW5UaHJlYWQoW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGNhbGxiYWNrID0gV1RG
TW92ZShjYWxsYmFjayksICZrZXlTdGF0dXNWZWN0b3JdKCkgbXV0YWJsZSB7CiAgICAgICAgIGlm
ICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTU0OSw3ICs1NDksNyBAQCB2
b2lkIENETUluc3RhbmNlU2Vzc2lvbkNsZWFyS2V5Ojpsb2FkU2Vzc2lvbihMaWNlbnNlVHlwZSwg
Y29uc3QgU3RyaW5nJiBzZXNzaW9uSQogdm9pZCBDRE1JbnN0YW5jZVNlc3Npb25DbGVhcktleTo6
Y2xvc2VTZXNzaW9uKGNvbnN0IFN0cmluZyYsIENsb3NlU2Vzc2lvbkNhbGxiYWNrJiYgY2FsbGJh
Y2spCiB7CiAgICAgY2FsbE9uTWFpblRocmVhZCgKLSAgICAgICAgW3dlYWtUaGlzID0gbWFrZVdl
YWtQdHIoKnRoaXMpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoKSBtdXRhYmxlIHsK
KyAgICAgICAgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGNhbGxiYWNrID0gV1RGTW92
ZShjYWxsYmFjayldICgpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAg
ICAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTU2Niw3ICs1NjYsNyBAQCB2b2lkIENETUluc3Rh
bmNlU2Vzc2lvbkNsZWFyS2V5OjpyZW1vdmVTZXNzaW9uRGF0YShjb25zdCBTdHJpbmcmIHNlc3Np
b25JZCwgTGljZQogICAgIEFTU0VSVChzZXNzaW9uSWQgPT0gbV9zZXNzaW9uSUQpOwogCiAgICAg
YXV0byBkaXNwYXRjaENhbGxiYWNrID0KLSAgICAgICAgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIo
KnRoaXMpLCAmY2FsbGJhY2tdKEtleVN0YXR1c1ZlY3RvciYmIGtleVN0YXR1c1ZlY3Rvciwgc3Rk
OjpvcHRpb25hbDxSZWY8U2hhcmVkQnVmZmVyPj4mJiBtZXNzYWdlLCBTdWNjZXNzVmFsdWUgc3Vj
Y2VzcykgeworICAgICAgICBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgJmNhbGxiYWNr
XShLZXlTdGF0dXNWZWN0b3ImJiBrZXlTdGF0dXNWZWN0b3IsIHN0ZDo6b3B0aW9uYWw8UmVmPFNo
YXJlZEJ1ZmZlcj4+JiYgbWVzc2FnZSwgU3VjY2Vzc1ZhbHVlIHN1Y2Nlc3MpIHsKICAgICAgICAg
ICAgIGNhbGxPbk1haW5UaHJlYWQoCiAgICAgICAgICAgICAgICAgW3dlYWtUaGlzID0gbWFrZVdl
YWtQdHIoKndlYWtUaGlzKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwga2V5U3RhdHVz
VmVjdG9yID0gV1RGTW92ZShrZXlTdGF0dXNWZWN0b3IpLCBtZXNzYWdlID0gV1RGTW92ZShtZXNz
YWdlKSwgc3VjY2Vzc10oKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKCF3ZWFr
VGhpcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbi5jcHAKaW5kZXggNzNmOGM3MGJhODRjMzBlNWUzMzkzNjc2OWUyNzNkOTFlMTllNTBj
Zi4uNDY4OWI5N2NjOTJjMjIwNmU3YThlNThiNDE5ZjBmMTA0NzYzYzIzOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKQEAg
LTE1Miw3ICsxNTIsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2V0
TmVlZHNSZW5kZXJpbmdNb2RlQ2hhbmdlZCgpCiAgICAgICAgIHJldHVybjsKICAgICBtX25lZWRz
UmVuZGVyaW5nTW9kZUNoYW5nZWQgPSB0cnVlOwogCi0gICAgcXVldWVUYXNrT25FdmVudExvb3Ao
W3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSB7CisgICAgcXVldWVUYXNrT25FdmVudExv
b3AoW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dIHsKICAgICAgICAgaWYgKHdlYWtUaGlz
KQogICAgICAgICAgICAgd2Vha1RoaXMtPnJlbmRlcmluZ01vZGVDaGFuZ2VkKCk7CiAgICAgfSk7
CkBAIC03NzQsNyArNzc0LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246
OnNjaGVkdWxlTWFpblRocmVhZE5vdGlmaWNhdGlvbihOb3RpZmljYXRpb24KICAgICAgICAgaWYg
KGRlbGF5RGlzcGF0Y2ggJiYgIW1fbWFpblRocmVhZENhbGxQZW5kaW5nKSB7CiAgICAgICAgICAg
ICBtX21haW5UaHJlYWRDYWxsUGVuZGluZyA9IHRydWU7CiAKLSAgICAgICAgICAgIGNhbGxPbk1h
aW5UaHJlYWQoW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSB7CisgICAgICAgICAgICBj
YWxsT25NYWluVGhyZWFkKFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XSB7CiAgICAgICAg
ICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogCkBA
IC04MDYsNyArODA2LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OmRp
c3BhdGNoTm90aWZpY2F0aW9uKCkKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgaWYgKCFt
X3F1ZXVlZE5vdGlmaWNhdGlvbnMuaXNFbXB0eSgpICYmICFtX21haW5UaHJlYWRDYWxsUGVuZGlu
ZykgewotICAgICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1RoaXMgPSBtYWtlV2Vha1B0
cigqdGhpcyldIHsKKyAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtUaGlzID0gV2Vh
a1B0ciB7ICp0aGlzIH1dIHsKICAgICAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAg
ICAgICAgICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1p
bmdBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMubW0KaW5kZXggNTY4
MzQ2ZGZjMmRlNDk1ODUwMDY3NGFiZTkzNGFjNTlhNDU5MzIwYi4uNjk1M2M5ZjFmMWI1ODcxZGE1
ZjhkNDY1ZGVlZmRjZWIwOWY1ZTRmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWlu
Z0FWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMubW0KQEAgLTgw
OCw3ICs4MDgsNyBAQCB2b2lkIENETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZG
T2JqQzo6dXBkYXRlTGljZW5zZShjb25zdCBTdHJpbmcmLCBMaQogICAgICAgICAgICAgbV91cGRh
dGVSZXNwb25zZUNvbGxlY3RvciA9IG51bGxwdHI7CiAgICAgICAgIH0KIAotICAgICAgICBtX3Vw
ZGF0ZVJlc3BvbnNlQ29sbGVjdG9yID0gV1RGOjptYWtlVW5pcXVlPFVwZGF0ZVJlc3BvbnNlQ29s
bGVjdG9yPihtX2N1cnJlbnRSZXF1ZXN0LnZhbHVlKCkucmVxdWVzdHMuc2l6ZSgpLCBbd2Vha1Ro
aXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXNdIChzdGQ6Om9wdGlvbmFsPFVwZGF0ZVJlc3Bv
bnNlQ29sbGVjdG9yOjpSZXNwb25zZU1hcD4mJiByZXNwb25zZXMpIHsKKyAgICAgICAgbV91cGRh
dGVSZXNwb25zZUNvbGxlY3RvciA9IFdURjo6bWFrZVVuaXF1ZTxVcGRhdGVSZXNwb25zZUNvbGxl
Y3Rvcj4obV9jdXJyZW50UmVxdWVzdC52YWx1ZSgpLnJlcXVlc3RzLnNpemUoKSwgW3dlYWtUaGlz
ID0gV2Vha1B0ciB7ICp0aGlzIH0sIHRoaXNdIChzdGQ6Om9wdGlvbmFsPFVwZGF0ZVJlc3BvbnNl
Q29sbGVjdG9yOjpSZXNwb25zZU1hcD4mJiByZXNwb25zZXMpIHsKICAgICAgICAgICAgIGlmICgh
d2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCkBAIC0xMDk5LDcgKzEwOTksNyBA
QCB2b2lkIENETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6ZGlkUHJv
dmlkZVJlcXVlc3QoQVZDb250ZW50S2V5UgogCiAgICAgUmV0YWluUHRyPE5TRGF0YT4gY29udGVu
dElkZW50aWZpZXIgPSBrZXlJRHMuZmlyc3QoKS0+Y3JlYXRlTlNEYXRhKCk7CiAgICAgQHRyeSB7
Ci0gICAgICAgIFtyZXF1ZXN0IG1ha2VTdHJlYW1pbmdDb250ZW50S2V5UmVxdWVzdERhdGFGb3JB
cHA6YXBwSWRlbnRpZmllci5nZXQoKSBjb250ZW50SWRlbnRpZmllcjpjb250ZW50SWRlbnRpZmll
ci5nZXQoKSBvcHRpb25zOm5pbCBjb21wbGV0aW9uSGFuZGxlcjpbdGhpcywgd2Vha1RoaXMgPSBt
YWtlV2Vha1B0cigqdGhpcyldIChOU0RhdGEgKmNvbnRlbnRLZXlSZXF1ZXN0RGF0YSwgTlNFcnJv
ciAqZXJyb3IpIG11dGFibGUgeworICAgICAgICBbcmVxdWVzdCBtYWtlU3RyZWFtaW5nQ29udGVu
dEtleVJlcXVlc3REYXRhRm9yQXBwOmFwcElkZW50aWZpZXIuZ2V0KCkgY29udGVudElkZW50aWZp
ZXI6Y29udGVudElkZW50aWZpZXIuZ2V0KCkgb3B0aW9uczpuaWwgY29tcGxldGlvbkhhbmRsZXI6
W3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dIChOU0RhdGEgKmNvbnRlbnRLZXlS
ZXF1ZXN0RGF0YSwgTlNFcnJvciAqZXJyb3IpIG11dGFibGUgewogICAgICAgICAgICAgY2FsbE9u
TWFpblRocmVhZChbdGhpcywgd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwgZXJyb3IgPSBy
ZXRhaW5QdHIoZXJyb3IpLCBjb250ZW50S2V5UmVxdWVzdERhdGEgPSByZXRhaW5QdHIoY29udGVu
dEtleVJlcXVlc3REYXRhKV0gewogICAgICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAg
ICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTExNzksNyArMTE3OSw3IEBAIHZvaWQgQ0RNSW5z
dGFuY2VTZXNzaW9uRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjpkaWRQcm92aWRlUmVxdWVzdHMo
VmVjdG9yPFJldGFpCiAgICAgICAgIFJlcXVlc3RzRGF0YSByZXF1ZXN0c0RhdGE7CiAgICAgfTsK
IAotICAgIGF1dG8gYWdncmVnYXRvciA9IENhbGxiYWNrQWdncmVnYXRvcjo6Y3JlYXRlKFt0aGlz
LCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0gKFJlcXVlc3RzRGF0YSYmIHJlcXVlc3Rz
RGF0YSkgeworICAgIGF1dG8gYWdncmVnYXRvciA9IENhbGxiYWNrQWdncmVnYXRvcjo6Y3JlYXRl
KFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XSAoUmVxdWVzdHNEYXRhJiYgcmVx
dWVzdHNEYXRhKSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47
CiAKQEAgLTEyNTQsNyArMTI1NCw3IEBAIHZvaWQgQ0RNSW5zdGFuY2VTZXNzaW9uRmFpclBsYXlT
dHJlYW1pbmdBVkZPYmpDOjpkaWRQcm92aWRlUmVuZXdpbmdSZXF1ZXN0KEFWQ29uCiAKICAgICBS
ZXRhaW5QdHI8TlNEYXRhPiBjb250ZW50SWRlbnRpZmllciA9IGtleUlEcy5maXJzdCgpLT5jcmVh
dGVOU0RhdGEoKTsKICAgICBAdHJ5IHsKLSAgICAgICAgW3JlcXVlc3QgbWFrZVN0cmVhbWluZ0Nv
bnRlbnRLZXlSZXF1ZXN0RGF0YUZvckFwcDphcHBJZGVudGlmaWVyLmdldCgpIGNvbnRlbnRJZGVu
dGlmaWVyOmNvbnRlbnRJZGVudGlmaWVyLmdldCgpIG9wdGlvbnM6bmlsIGNvbXBsZXRpb25IYW5k
bGVyOlt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0gKE5TRGF0YSAqY29udGVu
dEtleVJlcXVlc3REYXRhLCBOU0Vycm9yICplcnJvcikgbXV0YWJsZSB7CisgICAgICAgIFtyZXF1
ZXN0IG1ha2VTdHJlYW1pbmdDb250ZW50S2V5UmVxdWVzdERhdGFGb3JBcHA6YXBwSWRlbnRpZmll
ci5nZXQoKSBjb250ZW50SWRlbnRpZmllcjpjb250ZW50SWRlbnRpZmllci5nZXQoKSBvcHRpb25z
Om5pbCBjb21wbGV0aW9uSGFuZGxlcjpbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMg
fV0gKE5TRGF0YSAqY29udGVudEtleVJlcXVlc3REYXRhLCBOU0Vycm9yICplcnJvcikgbXV0YWJs
ZSB7CiAgICAgICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCB3ZWFrVGhpcyA9IFdURk1v
dmUod2Vha1RoaXMpLCBlcnJvciA9IHJldGFpblB0cihlcnJvciksIGNvbnRlbnRLZXlSZXF1ZXN0
RGF0YSA9IHJldGFpblB0cihjb250ZW50S2V5UmVxdWVzdERhdGEpXSB7CiAgICAgICAgICAgICAg
ICAgaWYgKCF3ZWFrVGhpcyB8fCAhbV9jbGllbnQgfHwgZXJyb3IpCiAgICAgICAgICAgICAgICAg
ICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL0xvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTG9jYWxTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXIubW0KaW5kZXggNTFiYzI0NjhjNWRjMGYzNjkwMzQwODlmYzky
MWFkNDAzMjUzODUxZi4uMGJhZTljMThiZDk0MmIzMGVhOWVmODU4MTViOTI1YTE3YmU0YzRmMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTG9jYWxTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXIubW0KQEAgLTQwNyw3ICs0MDcsNyBAQCB2b2lkIExvY2FsU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyOjpjbGVhckVucXVldWVkU2FtcGxlcygpCiAKIHZvaWQgTG9jYWxTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXI6OnJlcXVlc3ROb3RpZmljYXRpb25XaGVuUmVhZHlGb3JWaWRlb0Rh
dGEoKQogewotICAgIGF1dG8gd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyk7CisgICAgV2Vh
a1B0ciB3ZWFrVGhpcyB7ICp0aGlzIH07CiAgICAgW21fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
IHJlcXVlc3RNZWRpYURhdGFXaGVuUmVhZHlPblF1ZXVlOmRpc3BhdGNoX2dldF9tYWluX3F1ZXVl
KCkgdXNpbmdCbG9jazpeewogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0
dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggZmFlMzlkYTNhYmMwNGE0NjFjZWE2NGY2
YjUyY2E0MjdlZjI0ZDQzZi4uMTRiOTgxOWEwOTU4OWIzODRjOWExM2I3MGQ1YmUwM2UyNDgwOWE5
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC02MTUsNyArNjE1LDcgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVWaWRlb0xheWVyKCkKICAgICBp
ZiAoIW1fYXZQbGF5ZXIgfHwgbV9oYXZlQmVlbkFza2VkVG9DcmVhdGVMYXllcikKICAgICAgICAg
cmV0dXJuOwogCi0gICAgZW5zdXJlT25NYWluVGhyZWFkKFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VX
ZWFrUHRyKCp0aGlzKV0geworICAgIGVuc3VyZU9uTWFpblRocmVhZChbdGhpcywgd2Vha1RoaXMg
PSBXZWFrUHRyIHsgKnRoaXMgfV0gewogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAg
ICAgcmV0dXJuOwogCkBAIC0xMDk4LDggKzEwOTgsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWUGxheWVyKCkKICNlbmRpZgogCiAgICAgQVNTRVJU
KCFtX2N1cnJlbnRUaW1lT2JzZXJ2ZXIpOwotICAgIGF1dG8gd2Vha1RoaXMgPSBtYWtlV2Vha1B0
cigqdGhpcyk7Ci0gICAgbV9jdXJyZW50VGltZU9ic2VydmVyID0gW21fYXZQbGF5ZXIgYWRkUGVy
aW9kaWNUaW1lT2JzZXJ2ZXJGb3JJbnRlcnZhbDpQQUw6OkNNVGltZU1ha2UoMSwgMTApIHF1ZXVl
OmRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkgdXNpbmdCbG9jazpbd2Vha1RoaXNdIChDTVRpbWUg
dGltZSkgeworICAgIG1fY3VycmVudFRpbWVPYnNlcnZlciA9IFttX2F2UGxheWVyIGFkZFBlcmlv
ZGljVGltZU9ic2VydmVyRm9ySW50ZXJ2YWw6UEFMOjpDTVRpbWVNYWtlKDEsIDEwKSBxdWV1ZTpk
aXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpIHVzaW5nQmxvY2s6W3dlYWtUaGlzID0gV2Vha1B0ciB7
ICp0aGlzIH1dIChDTVRpbWUgdGltZSkgewogICAgICAgICBlbnN1cmVPbk1haW5UaHJlYWQoW3dl
YWtUaGlzLCB0aW1lXSB7CiAgICAgICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAgICAgICAgICAg
ICAgd2Vha1RoaXMtPmN1cnJlbnRNZWRpYVRpbWVEaWRDaGFuZ2UoUEFMOjp0b01lZGlhVGltZSh0
aW1lKSk7CkBAIC0xMTkwLDcgKzExODksNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OmNoZWNrUGxheWFiaWxpdHkoKQogICAgIG1faGF2ZUNoZWNrZWRQbGF5YWJp
bGl0eSA9IHRydWU7CiAKICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSKTsKLSAgICBhdXRvIHdl
YWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpOworICAgIFdlYWtQdHIgd2Vha1RoaXMgeyAqdGhp
cyB9OwogCiAgICAgW21fYXZBc3NldCBsb2FkVmFsdWVzQXN5bmNocm9ub3VzbHlGb3JLZXlzOkBb
QCJwbGF5YWJsZSIsIEAidHJhY2tzIl0gY29tcGxldGlvbkhhbmRsZXI6XnsKICAgICAgICAgY2Fs
bE9uTWFpblRocmVhZChbd2Vha1RoaXNdIHsKQEAgLTEyMDYsNyArMTIwNSw3IEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6YmVnaW5Mb2FkaW5nTWV0YWRhdGEoKQog
CiAgICAgT1NPYmplY3RQdHI8ZGlzcGF0Y2hfZ3JvdXBfdD4gbWV0YWRhdGFMb2FkaW5nR3JvdXAg
PSBhZG9wdE9TT2JqZWN0KGRpc3BhdGNoX2dyb3VwX2NyZWF0ZSgpKTsKICAgICBkaXNwYXRjaF9n
cm91cF9lbnRlcihtZXRhZGF0YUxvYWRpbmdHcm91cC5nZXQoKSk7Ci0gICAgYXV0byB3ZWFrVGhp
cyA9IG1ha2VXZWFrUHRyKCp0aGlzKTsKKyAgICBXZWFrUHRyIHdlYWtUaGlzIHsgKnRoaXMgfTsK
ICAgICBbbV9hdkFzc2V0IGxvYWRWYWx1ZXNBc3luY2hyb25vdXNseUZvcktleXM6YXNzZXRNZXRh
ZGF0YUtleU5hbWVzKCkgY29tcGxldGlvbkhhbmRsZXI6XnsKICAgICAgICAgY2FsbE9uTWFpblRo
cmVhZChbd2Vha1RoaXMsIG1ldGFkYXRhTG9hZGluZ0dyb3VwXSB7CiAgICAgICAgICAgICBpZiAo
d2Vha1RoaXMgJiYgW3dlYWtUaGlzLT5tX2F2QXNzZXQgc3RhdHVzT2ZWYWx1ZUZvcktleTpAInRy
YWNrcyIgZXJyb3I6bmlsXSA9PSBBVktleVZhbHVlU3RhdHVzTG9hZGVkKSB7CkBAIC0xNTE1LDcg
KzE1MTQsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNlZWtU
b1RpbWUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdAogICAgIGlmIChQQUw6OkNNVGltZUNv
bXBhcmUoY21CZWZvcmUsIFBBTDo6a0NNVGltZVplcm8pIDwgMCkKICAgICAgICAgY21CZWZvcmUg
PSBQQUw6OmtDTVRpbWVaZXJvOwogICAgIAotICAgIGF1dG8gd2Vha1RoaXMgPSBtYWtlV2Vha1B0
cigqdGhpcyk7CisgICAgV2Vha1B0ciB3ZWFrVGhpcyB7ICp0aGlzIH07CiAKICAgICBzZXRTaG91
bGRPYnNlcnZlVGltZUNvbnRyb2xTdGF0dXMoZmFsc2UpOwogICAgIFttX2F2UGxheWVySXRlbSBz
ZWVrVG9UaW1lOmNtVGltZSB0b2xlcmFuY2VCZWZvcmU6Y21CZWZvcmUgdG9sZXJhbmNlQWZ0ZXI6
Y21BZnRlciBjb21wbGV0aW9uSGFuZGxlcjpeKEJPT0wgZmluaXNoZWQpIHsKQEAgLTMxNzYsOCAr
MzE3NSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0U2hv
dWxkUGxheVRvUGxheWJhY2tUYXJnZXQoYm9vbCBzaG91CiAgICAgQVNTRVJUKG1fcGxheWJhY2tU
YXJnZXQtPnRhcmdldFR5cGUoKSA9PSBNZWRpYVBsYXliYWNrVGFyZ2V0OjpUYXJnZXRUeXBlOjpN
b2NrKTsKIAogICAgIHNldERlbGF5Q2FsbGJhY2tzKHRydWUpOwotICAgIGF1dG8gd2Vha1RoaXMg
PSBtYWtlV2Vha1B0cigqdGhpcyk7Ci0gICAgc2NoZWR1bGVNYWluVGhyZWFkTm90aWZpY2F0aW9u
KE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6Tm90aWZpY2F0aW9uKFt3ZWFrVGhpc10g
eworICAgIHNjaGVkdWxlTWFpblRocmVhZE5vdGlmaWNhdGlvbihNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb246Ok5vdGlmaWNhdGlvbihbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0g
ewogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB3
ZWFrVGhpcy0+cGxheWJhY2tUYXJnZXRJc1dpcmVsZXNzRGlkQ2hhbmdlKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMubW0KaW5kZXggM2YyYmE5NDMwMGU0OTQ1YjRjMzE2NGI5ZjVhOTVlOTMyYWNm
ZmNkZi4uNTliMjgzODIzMDI5NTk0ZDE2Mzg4MzBiOTY3YjdmZTdiNzMwYjgwMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtMTQ3LDcgKzE0Nyw3IEBAIE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
KE1lZGlhCiAKICAgICAvLyBhZGRQZXJpb2RpY1RpbWVPYnNlcnZlckZvckludGVydmFsOiB0aHJv
d3MgYW4gZXhjZXB0aW9uIGlmIHlvdSBwYXNzIGEgbm9uLW51bWVyaWMgQ01UaW1lLCBzbyBqdXN0
IHVzZQogICAgIC8vIGFuIGFyYml0cmFyaWx5IGxhcmdlIHRpbWUgdmFsdWUgb2Ygb25jZSBhbiBo
b3VyOgotICAgIF9fYmxvY2sgYXV0byB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKTsKKyAg
ICBfX2Jsb2NrIFdlYWtQdHIgd2Vha1RoaXMgeyAqdGhpcyB9OwogICAgIG1fdGltZUp1bXBlZE9i
c2VydmVyID0gW21fc3luY2hyb25pemVyIGFkZFBlcmlvZGljVGltZU9ic2VydmVyRm9ySW50ZXJ2
YWw6UEFMOjp0b0NNVGltZShNZWRpYVRpbWU6OmNyZWF0ZVdpdGhEb3VibGUoMzYwMCkpIHF1ZXVl
OmRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkgdXNpbmdCbG9jazpeKENNVGltZSB0aW1lKSB7CiAj
aWYgTE9HX0RJU0FCTEVECiAgICAgICAgIFVOVVNFRF9QQVJBTSh0aW1lKTsKQEAgLTMxMCw3ICsz
MTAsNyBAQCBQbGF0Zm9ybUxheWVyKiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akM6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakM6OnBsYXkoKQogewogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7Ci0g
ICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyldIHsKKyAg
ICBjYWxsT25NYWluVGhyZWFkKFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XSB7CiAgICAg
ICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIHdlYWtUaGlz
LmdldCgpLT5wbGF5SW50ZXJuYWwoKTsKQEAgLTM1Myw3ICszNTMsNyBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cGxheUludGVybmFsKHN0ZDo6b3B0aW9uYWw8
TW9ub3RvbmljVAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnBh
dXNlKCkKIHsKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOwotICAgIGNhbGxPbk1haW5U
aHJlYWQoW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSB7CisgICAgY2FsbE9uTWFpblRo
cmVhZChbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0gewogICAgICAgICBpZiAoIXdlYWtU
aGlzKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB3ZWFrVGhpcy5nZXQoKS0+cGF1c2VJ
bnRlcm5hbCgpOwpAQCAtNDcxLDcgKzQ3MSw3IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDOjpzZXRDdXJyZW50VGltZURpZENoYW5nZUNhbGxiYWNrKE1lZGlhCiBi
b29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cGxheUF0SG9zdFRpbWUo
Y29uc3QgTW9ub3RvbmljVGltZSYgdGltZSkKIHsKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJ
RVIpOwotICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMp
LCB0aW1lID0gdGltZV0geworICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtUaGlzID0gV2Vha1B0
ciB7ICp0aGlzIH0sIHRpbWUgPSB0aW1lXSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIHdlYWtUaGlzLmdldCgpLT5wbGF5SW50ZXJuYWwodGlt
ZSk7CkBAIC00ODIsNyArNDgyLDcgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakM6OnBsYXlBdEhvc3RUaW1lKGNvbnN0IE1vbm90b25pY1RpbWUmIHQKIGJvb2wgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwYXVzZUF0SG9zdFRpbWUoY29uc3Qg
TW9ub3RvbmljVGltZSYgdGltZSkKIHsKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOwot
ICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0aW1l
ID0gdGltZV0geworICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0
aGlzIH0sIHRpbWUgPSB0aW1lXSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIHdlYWtUaGlzLmdldCgpLT5wYXVzZUludGVybmFsKHRpbWUpOwpA
QCAtMTAwOCw3ICsxMDA4LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakM6OmR1cmF0aW9uQ2hhbmdlZCgpCiAgICAgREVCVUdfTE9HKGxvZ1NpdGVJZGVudGlmaWVy
LCBkdXJhdGlvbik7CiAgICAgVU5VU0VEX1BBUkFNKGxvZ1NpdGVJZGVudGlmaWVyKTsKIAotICAg
IG1fZHVyYXRpb25PYnNlcnZlciA9IFttX3N5bmNocm9uaXplciBhZGRCb3VuZGFyeVRpbWVPYnNl
cnZlckZvclRpbWVzOnRpbWVzIHF1ZXVlOmRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkgdXNpbmdC
bG9jazpbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIGR1cmF0aW9uLCBsb2dTaXRlSWRl
bnRpZmllciwgdGhpc10geworICAgIG1fZHVyYXRpb25PYnNlcnZlciA9IFttX3N5bmNocm9uaXpl
ciBhZGRCb3VuZGFyeVRpbWVPYnNlcnZlckZvclRpbWVzOnRpbWVzIHF1ZXVlOmRpc3BhdGNoX2dl
dF9tYWluX3F1ZXVlKCkgdXNpbmdCbG9jazpbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwg
ZHVyYXRpb24sIGxvZ1NpdGVJZGVudGlmaWVyLCB0aGlzXSB7CiAgICAgICAgIGlmICghd2Vha1Ro
aXMpCiAgICAgICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQppbmRl
eCAzMDE5ZjBhOWVmYzJmNDdlYTNlYzZlMGU3OWU2NDE3NmRjYmEwNTM3Li4yNTg2M2QxZWRiMzgz
OWVlODMwYjI2ZWYwOTBiY2I2M2UyMWUwN2VhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1t
CkBAIC0xMDYxLDcgKzEwNjEsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQzo6YXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkKIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzY2hlZHVsZURlZmVycmVkVGFzayhGdW5jdGlvbjx2b2lk
ICgpPiYmIGZ1bmN0aW9uKQogewogICAgIEFTU0VSVChmdW5jdGlvbik7Ci0gICAgY2FsbE9uTWFp
blRocmVhZChbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIGZ1bmN0aW9uID0gV1RGTW92
ZShmdW5jdGlvbildIHsKKyAgICBjYWxsT25NYWluVGhyZWFkKFt3ZWFrVGhpcyA9IFdlYWtQdHIg
eyAqdGhpcyB9LCBmdW5jdGlvbiA9IFdURk1vdmUoZnVuY3Rpb24pXSB7CiAgICAgICAgIGlmICgh
d2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZh
dGVBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KaW5kZXggZDkzYzFjYWIzNWMx
MTljODEwNGJjNTkzOGQwYzFiMzJlYjcxYTg0MS4uNzIwMjNiZWFlNTgxYmNhYTY5MTU4ODE3Y2Q3
ODZlYzkyZDFkMmU1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KQEAgLTQxMCw3ICs0MTAsNyBAQCB2b2lkIFNvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRQYXJzZUluaXRpYWxpemF0aW9uRGF0YShJbml0aWFsaXph
dGlvblNlZ21lbgogICAgIH0KIAogICAgIG1fcHJvY2Vzc2luZ0luaXRpYWxpemF0aW9uU2VnbWVu
dCA9IHRydWU7Ci0gICAgZGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChXVEZNb3ZlKHNl
Z21lbnQpLCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIGFib3J0Q2FsbGVk
ID0gbV9hYm9ydENhbGxlZF0oKSB7CisgICAgZGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVu
dChXVEZNb3ZlKHNlZ21lbnQpLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwg
YWJvcnRDYWxsZWQgPSBtX2Fib3J0Q2FsbGVkXSgpIHsKICAgICAgICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKQEAg
LTg0Myw3ICs4NDMsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjp0cmFja0Rp
ZENoYW5nZUVuYWJsZWQoQXVkaW9UcmFja1ByaXZhdGUmIHRyYWNrLAogICAgICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgYXV0byB3ZWFrVGhpcyA9IG1h
a2VXZWFrUHRyKCp0aGlzKTsKKyAgICAgICAgICAgIFdlYWtQdHIgd2Vha1RoaXMgeyAqdGhpcyB9
OwogICAgICAgICAgICAgW3JlbmRlcmVyIHJlcXVlc3RNZWRpYURhdGFXaGVuUmVhZHlPblF1ZXVl
OmRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkgdXNpbmdCbG9jazpeewogICAgICAgICAgICAgICAg
IGlmICh3ZWFrVGhpcykKICAgICAgICAgICAgICAgICAgICAgd2Vha1RoaXMtPmRpZEJlY29tZVJl
YWR5Rm9yTW9yZVNhbXBsZXModHJhY2tJRCk7CkBAIC04ODYsNyArODg2LDcgQEAgdm9pZCBTb3Vy
Y2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6c2V0Q0RNU2Vzc2lvbihDRE1TZXNzaW9uTWVkaWFTb3Vy
Y2VBVkZPYmpDKiBzZXMKICAgICAgICAgfQogCiAgICAgICAgIGlmIChtX2hkY3BFcnJvcikgewot
ICAgICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhp
cyldIHsKKyAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtUaGlzID0gV2Vha1B0ciB7
ICp0aGlzIH1dIHsKICAgICAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICF3ZWFrVGhpcy0+
bV9zZXNzaW9uIHx8ICF3ZWFrVGhpcy0+bV9oZGNwRXJyb3IpCiAgICAgICAgICAgICAgICAgICAg
IHJldHVybjsKIApAQCAtMTA4MSw3ICsxMDgxLDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQzo6Zmx1c2hWaWRlbygpCiAKICAgICBpZiAobV9kZWNvbXByZXNzaW9uU2Vzc2lvbikg
ewogICAgICAgICBtX2RlY29tcHJlc3Npb25TZXNzaW9uLT5mbHVzaCgpOwotICAgICAgICBtX2Rl
Y29tcHJlc3Npb25TZXNzaW9uLT5ub3RpZnlXaGVuSGFzQXZhaWxhYmxlVmlkZW9GcmFtZShbd2Vh
a1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyldIHsKKyAgICAgICAgbV9kZWNvbXByZXNzaW9uU2Vz
c2lvbi0+bm90aWZ5V2hlbkhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoW3dlYWtUaGlzID0gV2Vha1B0
ciB7ICp0aGlzIH1dIHsKICAgICAgICAgICAgIGlmICh3ZWFrVGhpcyAmJiB3ZWFrVGhpcy0+cGxh
eWVyKCkpCiAgICAgICAgICAgICAgICAgd2Vha1RoaXMtPnBsYXllcigpLT5zZXRIYXNBdmFpbGFi
bGVWaWRlb0ZyYW1lKHRydWUpOwogICAgICAgICB9KTsKQEAgLTExNzMsNyArMTE3Myw3IEBAIHZv
aWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmVucXVldWVTYW1wbGUoUmVmPE1lZGlhU2Ft
cGxlPiYmIHNhbXBsZSwgY29uc3QKICAgICAgICAgICAgIH0gZWxzZSB7CiAKICAgICAgICAgICAg
ICAgICBbbV9kaXNwbGF5TGF5ZXIgZW5xdWV1ZVNhbXBsZUJ1ZmZlcjpwbGF0Zm9ybVNhbXBsZS5z
YW1wbGUuY21TYW1wbGVCdWZmZXJdOwotICAgICAgICAgICAgICAgIFttX2Rpc3BsYXlMYXllciBw
cmVyb2xsRGVjb2RlV2l0aENvbXBsZXRpb25IYW5kbGVyOlt0aGlzLCBsb2dTaXRlSWRlbnRpZmll
ciwgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyldIChCT09MIHN1Y2Nlc3MpIG11dGFibGUg
eworICAgICAgICAgICAgICAgIFttX2Rpc3BsYXlMYXllciBwcmVyb2xsRGVjb2RlV2l0aENvbXBs
ZXRpb25IYW5kbGVyOlt0aGlzLCBsb2dTaXRlSWRlbnRpZmllciwgd2Vha1RoaXMgPSBXZWFrUHRy
IHsgKnRoaXMgfV0gKEJPT0wgc3VjY2VzcykgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgICAg
IGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTEy
OTcsMTQgKzEyOTcsMTQgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6bm90aWZ5
Q2xpZW50V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMoY29uc3QgQXRvbVMKICAgICAgICAgICAgIH0p
OwogICAgICAgICB9CiAgICAgICAgIGlmIChtX2Rpc3BsYXlMYXllcikgewotICAgICAgICAgICAg
YXV0byB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKTsKKyAgICAgICAgICAgIFdlYWtQdHIg
d2Vha1RoaXMgeyAqdGhpcyB9OwogICAgICAgICAgICAgW21fZGlzcGxheUxheWVyIHJlcXVlc3RN
ZWRpYURhdGFXaGVuUmVhZHlPblF1ZXVlOmRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkgdXNpbmdC
bG9jazpeIHsKICAgICAgICAgICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAgICAgICAgICAgICAg
ICAgIHdlYWtUaGlzLT5kaWRCZWNvbWVSZWFkeUZvck1vcmVTYW1wbGVzKHRyYWNrSUQpOwogICAg
ICAgICAgICAgfV07CiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKG1fYXVkaW9SZW5kZXJlcnMu
Y29udGFpbnModHJhY2tJRCkpIHsKLSAgICAgICAgYXV0byB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRy
KCp0aGlzKTsKKyAgICAgICAgV2Vha1B0ciB3ZWFrVGhpcyB7ICp0aGlzIH07CiAgICAgICAgIFtt
X2F1ZGlvUmVuZGVyZXJzLmdldCh0cmFja0lEKSByZXF1ZXN0TWVkaWFEYXRhV2hlblJlYWR5T25R
dWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpIHVzaW5nQmxvY2s6XiB7CiAgICAgICAgICAg
ICBpZiAod2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgd2Vha1RoaXMtPmRpZEJlY29tZVJlYWR5
Rm9yTW9yZVNhbXBsZXModHJhY2tJRCk7CkBAIC0xMzgwLDcgKzEzODAsNyBAQCB2b2lkIFNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpzZXRWaWRlb0xheWVyKEFWU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyKiBsYXllcgogICAgIG1fZGlzcGxheUxheWVyID0gbGF5ZXI7CiAKICAgICBpZiAobV9k
aXNwbGF5TGF5ZXIpIHsKLSAgICAgICAgYXV0byB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlz
KTsKKyAgICAgICAgV2Vha1B0ciB3ZWFrVGhpcyB7ICp0aGlzIH07CiAgICAgICAgIFttX2Rpc3Bs
YXlMYXllciByZXF1ZXN0TWVkaWFEYXRhV2hlblJlYWR5T25RdWV1ZTpkaXNwYXRjaF9nZXRfbWFp
bl9xdWV1ZSgpIHVzaW5nQmxvY2s6XiB7CiAgICAgICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAg
ICAgICAgICAgICAgd2Vha1RoaXMtPmRpZEJlY29tZVJlYWR5Rm9yTW9yZVNhbXBsZXMobV9lbmFi
bGVkVmlkZW9UcmFja0lEKTsKQEAgLTE0MDcsMTEgKzE0MDcsMTEgQEAgdm9pZCBTb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQzo6c2V0RGVjb21wcmVzc2lvblNlc3Npb24oV2ViQ29yZURlY29tcHJl
c3Npb25TZXMKICAgICBpZiAoIW1fZGVjb21wcmVzc2lvblNlc3Npb24pCiAgICAgICAgIHJldHVy
bjsKIAotICAgIG1fZGVjb21wcmVzc2lvblNlc3Npb24tPnJlcXVlc3RNZWRpYURhdGFXaGVuUmVh
ZHkoW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSB7CisgICAgbV9kZWNvbXByZXNzaW9u
U2Vzc2lvbi0+cmVxdWVzdE1lZGlhRGF0YVdoZW5SZWFkeShbd2Vha1RoaXMgPSBXZWFrUHRyIHsg
KnRoaXMgfV0gewogICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAgICAgICAgICB3ZWFrVGhpcy0+
ZGlkQmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyh3ZWFrVGhpcy0+bV9lbmFibGVkVmlkZW9UcmFj
a0lEKTsKICAgICB9KTsKLSAgICBtX2RlY29tcHJlc3Npb25TZXNzaW9uLT5ub3RpZnlXaGVuSGFz
QXZhaWxhYmxlVmlkZW9GcmFtZShbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyldIHsKKyAg
ICBtX2RlY29tcHJlc3Npb25TZXNzaW9uLT5ub3RpZnlXaGVuSGFzQXZhaWxhYmxlVmlkZW9GcmFt
ZShbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0gewogICAgICAgICBpZiAod2Vha1RoaXMg
JiYgd2Vha1RoaXMtPnBsYXllcigpKQogICAgICAgICAgICAgd2Vha1RoaXMtPnBsYXllcigpLT5z
ZXRIYXNBdmFpbGFibGVWaWRlb0ZyYW1lKHRydWUpOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvV2ViQ29yZUFW
RlJlc291cmNlTG9hZGVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLm1tCmluZGV4IDE4YTRmYmE5
ODUyNzE4YTQ1YjlkNTRiMjZhNTgzZGU5Yzg0YTAzODMuLjA1Yzg4NDdiMjU1NzMzZDJjNWRjNTUy
Mjc4OTIxZGZlYTM1YjA0OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1dlYkNvcmVBVkZSZXNvdXJjZUxvYWRlci5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9XZWJD
b3JlQVZGUmVzb3VyY2VMb2FkZXIubW0KQEAgLTI0MSw3ICsyNDEsNyBAQCBEYXRhVVJMUmVzb3Vy
Y2VNZWRpYUxvYWRlcjo6RGF0YVVSTFJlc291cmNlTWVkaWFMb2FkZXIoV2ViQ29yZUFWRlJlc291
cmNlTG9hZGVyJgogICAgICAgICBtX2J1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKFdURk1v
dmUocmVzdWx0LT5kYXRhKSk7CiAgICAgfQogCi0gICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywg
d2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyldIHsKKyAgICBjYWxsT25NYWluVGhyZWFkKFt0
aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XSB7CiAgICAgICAgIGlmICghd2Vha1Ro
aXMpCiAgICAgICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL1RleHRUcmFja1JlcHJlc2VudGF0aW9uQ29jb2EubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9UZXh0VHJhY2tSZXByZXNlbnRh
dGlvbkNvY29hLm1tCmluZGV4IDljZDcwNzIyNWViNmEzZmY0MGUxMTQ0YTNjZWQ1ZjllMGVjNjQ4
OGUuLmM1YWU3ZTBlNzdmNzFiNGY5Y2Q4ZmY4OTY2NzI3MzRjOTQ1MDA5ZTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1RleHRUcmFja1JlcHJlc2Vu
dGF0aW9uQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvVGV4dFRyYWNrUmVwcmVzZW50YXRpb25Db2NvYS5tbQpAQCAtMTUwLDcgKzE1MCw3IEBAIElu
dFJlY3QgVGV4dFRyYWNrUmVwcmVzZW50YXRpb25Db2NvYTo6Ym91bmRzKCkgY29uc3QKIAogdm9p
ZCBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbkNvY29hOjpib3VuZHNDaGFuZ2VkKCkKIHsKLSAgICBj
YWxsT25NYWluVGhyZWFkKFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0geworICAgIGNh
bGxPbk1haW5UaHJlYWQoW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dIHsKICAgICAgICAg
aWYgKHdlYWtUaGlzKQogICAgICAgICAgICAgd2Vha1RoaXMtPmNsaWVudCgpLnRleHRUcmFja1Jl
cHJlc2VudGF0aW9uQm91bmRzQ2hhbmdlZCh3ZWFrVGhpcy0+Ym91bmRzKCkpOwogICAgIH0pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCA1
NjFmM2ZkNzNmNzg5MWQ5MTdhY2QyNmFmOWUxMDE3YTJiZDJmYjczLi43MTVjNzg4ODNhYmY1OGVl
YTJkNzk5NzY0NDkwOTY2OGViZThjM2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMTg0Myw3ICsxODQzLDcgQEAgdm9pZCBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OmhhbmRsZU1lc3NhZ2UoR3N0TWVzc2FnZSogbWVzc2FnZSkK
ICAgICAgICAgaWYgKGdzdF9pc19taXNzaW5nX3BsdWdpbl9tZXNzYWdlKG1lc3NhZ2UpKSB7CiAj
aWYgIVVTRShHU1RSRUFNRVJfRlVMTCkKICAgICAgICAgICAgIGlmIChnc3RfaW5zdGFsbF9wbHVn
aW5zX3N1cHBvcnRlZCgpKSB7Ci0gICAgICAgICAgICAgICAgYXV0byBtaXNzaW5nUGx1Z2luQ2Fs
bGJhY2sgPSBNZWRpYVBsYXllclJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjazo6
Y3JlYXRlKFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0odWludDMyX3QgcmVzdWx0LCBN
ZWRpYVBsYXllclJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjayYgbWlzc2luZ1Bs
dWdpbkNhbGxiYWNrKSB7CisgICAgICAgICAgICAgICAgYXV0byBtaXNzaW5nUGx1Z2luQ2FsbGJh
Y2sgPSBNZWRpYVBsYXllclJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjazo6Y3Jl
YXRlKFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XSh1aW50MzJfdCByZXN1bHQsIE1lZGlh
UGxheWVyUmVxdWVzdEluc3RhbGxNaXNzaW5nUGx1Z2luc0NhbGxiYWNrJiBtaXNzaW5nUGx1Z2lu
Q2FsbGJhY2spIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykgewogICAgICAg
ICAgICAgICAgICAgICAgICAgR1NUX0lORk8oImdvdCBtaXNzaW5nIHBsdWdpbmcgaW5zdGFsbGF0
aW9uIGNhbGxiYWNrIGluIGRlc3Ryb3llZCBwbGF5ZXIgd2l0aCByZXN1bHQgJXUiLCByZXN1bHQp
OwogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtMzA0MCw3ICszMDQwLDcgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmludmFsaWRhdGVDYWNoZWRQb3NpdGlv
bigpIGNvbnN0CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjppbnZhbGlkYXRl
Q2FjaGVkUG9zaXRpb25Pbk5leHRJdGVyYXRpb24oKSBjb25zdAogewotICAgIFJ1bkxvb3A6Om1h
aW4oKS5kaXNwYXRjaChbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXNdIHsKKyAg
ICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0s
IHRoaXNdIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgaW52YWxpZGF0ZUNhY2hlZFBvc2l0aW9uKCk7CkBAIC0zMDc0LDcgKzMwNzQsNyBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dHJpZ2dlclJlcGFpbnQoR3N0U2FtcGxl
KiBzYW1wbGUpCiAgICAgICAgICAgICBHU1RfRVJST1JfT0JKRUNUKHBpcGVsaW5lKCksICJSZWNl
aXZlZCBzYW1wbGUgd2l0aG91dCBjYXBzOiAlIiBHU1RfUFRSX0ZPUk1BVCwgc2FtcGxlKTsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlz
cGF0Y2goW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0aGlzLCBjYXBzID0gV1RGTW92
ZShjYXBzKV0geworICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3dlYWtUaGlzID0g
V2Vha1B0ciB7ICp0aGlzIH0sIHRoaXMsIGNhcHMgPSBXVEZNb3ZlKGNhcHMpXSB7CiAgICAgICAg
ICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAg
IHVwZGF0ZVZpZGVvU2l6ZUFuZE9yaWVudGF0aW9uRnJvbUNhcHMoY2Fwcy5nZXQoKSk7CkBAIC0z
NTg2LDcgKzM1ODYsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6aW5pdGlh
bGl6YXRpb25EYXRhRW5jb3VudGVyZWQoSW5pdERhdGEmJiBpbml0RAogewogICAgIEFTU0VSVCgh
aXNNYWluVGhyZWFkKCkpOwogCi0gICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt3ZWFrVGhp
cyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgaW5pdERhdGEgPSBXVEZNb3ZlKGluaXREYXRhKV0gewor
ICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMg
fSwgaW5pdERhdGEgPSBXVEZNb3ZlKGluaXREYXRhKV0gewogICAgICAgICBpZiAoIXdlYWtUaGlz
KQogICAgICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2Eu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVj
b3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0KaW5kZXggNDIwMDFhMjVkYWUxZWU3NTI0OTQ1YWRj
OTY3YzgxODc1OGFiYTE5Zi4uMzcyZWEwZmJlZThkNWVlODc3OGMyY2RlODlkODFjNWU0NGVkNjg3
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2Nv
YS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJD
b2NvYS5tbQpAQCAtMzUwLDcgKzM1MCw3IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0
ZXI6OmZsdXNoQ29tcHJlc3NlZFNhbXBsZUJ1ZmZlcnMoRnVuY3Rpb248dm9pZCgpPiYmCiAKICAg
ICBBU1NFUlQoIW1faXNGbHVzaGluZ1NhbXBsZXMpOwogICAgIG1faXNGbHVzaGluZ1NhbXBsZXMg
PSB0cnVlOwotICAgIGF1dG8gYmxvY2sgPSBtYWtlQmxvY2tQdHIoW3RoaXMsIHdlYWtUaGlzID0g
bWFrZVdlYWtQdHIoKnRoaXMpLCBoYXNQZW5kaW5nQXVkaW9TYW1wbGVzLCBoYXNQZW5kaW5nVmlk
ZW9TYW1wbGVzLCBhdWRpb1NhbXBsZVF1ZXVlID0gV1RGTW92ZShtX3BlbmRpbmdBdWRpb1NhbXBs
ZVF1ZXVlKSwgdmlkZW9TYW1wbGVRdWV1ZSA9IFdURk1vdmUobV9wZW5kaW5nVmlkZW9TYW1wbGVR
dWV1ZSksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKCkgbXV0YWJsZSB7CisgICAgYXV0
byBibG9jayA9IG1ha2VCbG9ja1B0cihbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMg
fSwgaGFzUGVuZGluZ0F1ZGlvU2FtcGxlcywgaGFzUGVuZGluZ1ZpZGVvU2FtcGxlcywgYXVkaW9T
YW1wbGVRdWV1ZSA9IFdURk1vdmUobV9wZW5kaW5nQXVkaW9TYW1wbGVRdWV1ZSksIHZpZGVvU2Ft
cGxlUXVldWUgPSBXVEZNb3ZlKG1fcGVuZGluZ1ZpZGVvU2FtcGxlUXVldWUpLCBjYWxsYmFjayA9
IFdURk1vdmUoY2FsbGJhY2spXSgpIG11dGFibGUgewogICAgICAgICBpZiAoIXdlYWtUaGlzKSB7
CiAgICAgICAgICAgICBjYWxsYmFjaygpOwogICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJU
Q0RUTUZTZW5kZXJCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENEVE1GU2VuZGVyQmFja2VuZC5jcHAKaW5kZXggYTY2YjAw
N2IxZWYzMDVhYzAxYzU0OTc4M2ZiYzUxYThlMzRiZGUwMS4uYWI1Y2ZjYWIzZWI5MjRjNDk5ZDUw
NWQ2YmRhOTJmOTA3NzVhZTY1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ0RUTUZTZW5kZXJCYWNrZW5kLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRD
RFRNRlNlbmRlckJhY2tlbmQuY3BwCkBAIC03OSw3ICs3OSw3IEBAIHZvaWQgTGliV2ViUlRDRFRN
RlNlbmRlckJhY2tlbmQ6Ok9uVG9uZUNoYW5nZShjb25zdCBzdGQ6OnN0cmluZyYgdG9uZSwgY29u
c3Qgc3RkCiAgICAgLy8gV2UgYXJlIGp1c3QgaW50ZXJlc3RlZCBpbiBub3RpZnlpbmcgdGhlIGVu
ZCBvZiB0aGUgdG9uZSwgd2hpY2ggY29ycmVzcG9uZHMgdG8gdGhlIGVtcHR5IHN0cmluZy4KICAg
ICBpZiAoIXRvbmUuZW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwotICAgIGNhbGxPbk1haW5UaHJl
YWQoW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0b25lID0gdG9XVEZTdHJp
bmcodG9uZSldIHsKKyAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQ
dHIgeyAqdGhpcyB9LCB0b25lID0gdG9XVEZTdHJpbmcodG9uZSldIHsKICAgICAgICAgaWYgKCF3
ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgaWYgKG1fb25Ub25lUGxheWVk
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NH
RGlzcGxheVN0cmVhbUNhcHR1cmVTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0NHRGlzcGxheVN0cmVhbUNhcHR1cmVTb3VyY2UuY3BwCmluZGV4IDFi
NWZhMTA2MDE0NmMyY2ZhMzMyMTEwOGZhOGVkMDE1NzA0YjQ2OTMuLjViZWI5ZmEyMTk5NTdhZmZk
YmUzYmVmN2IwNjcwNWUyNWEzN2RhODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9DR0Rpc3BsYXlTdHJlYW1DYXB0dXJlU291cmNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ0dEaXNwbGF5U3RyZWFt
Q2FwdHVyZVNvdXJjZS5jcHAKQEAgLTE2MCw3ICsxNjAsNyBAQCBDR0Rpc3BsYXlTdHJlYW1GcmFt
ZUF2YWlsYWJsZUhhbmRsZXIgQ0dEaXNwbGF5U3RyZWFtQ2FwdHVyZVNvdXJjZTo6ZnJhbWVBdmFp
bGFibAogICAgIGlmIChtX2ZyYW1lQXZhaWxhYmxlSGFuZGxlcikKICAgICAgICAgcmV0dXJuIG1f
ZnJhbWVBdmFpbGFibGVIYW5kbGVyLmdldCgpOwogCi0gICAgYXV0byB3ZWFrVGhpcyA9IG1ha2VX
ZWFrUHRyKCp0aGlzKTsKKyAgICBXZWFrUHRyIHdlYWtUaGlzIHsgKnRoaXMgfTsKICAgICBtX2Zy
YW1lQXZhaWxhYmxlSGFuZGxlciA9IF4oQ0dEaXNwbGF5U3RyZWFtRnJhbWVTdGF0dXMgc3RhdHVz
LCB1aW50NjRfdCBkaXNwbGF5VGltZSwgSU9TdXJmYWNlUmVmIGZyYW1lU3VyZmFjZSwgQ0dEaXNw
bGF5U3RyZWFtVXBkYXRlUmVmIHVwZGF0ZVJlZikKICAgICB7CiAgICAgICAgIGlmICghZnJhbWVT
dXJmYWNlIHx8ICFkaXNwbGF5VGltZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2suY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jay5jcHAKaW5kZXgg
NzMwNGJmY2VhYzg0YjIzMTI2MWZhZGRiNGIzNmQ4NzU2MGQ0MTQ3OS4uYjU5ZGQwNTk5YzBmMTM4
ODEyNTBiZjg1OWRmMGE4NjE1NGFiMmNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jay5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jay5jcHAK
QEAgLTc0LDcgKzc0LDcgQEAgdm9pZCBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jazo6c2hv
d1BsYXliYWNrVGFyZ2V0UGlja2VyKFBsYXRmb3JtVmlldyosIGNvbnMKICAgICBMT0coTWVkaWEs
ICJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jazo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2Vy
IC0gY2hlY2tBY3RpdmVSb3V0ZSA9ICVpLCB1c2VEYXJrQXBwZWFyYW5jZSA9ICVpIiwgKGludClj
aGVja0FjdGl2ZVJvdXRlLCAoaW50KXVzZURhcmtBcHBlYXJhbmNlKTsKIAogICAgIG1fc2hvd2lu
Z01lbnUgPSB0cnVlOwotICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHdlYWtUaGlzID0gbWFr
ZVdlYWtQdHIoKnRoaXMpXSB7CisgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgd2Vha1RoaXMg
PSBXZWFrUHRyIHsgKnRoaXMgfV0gewogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAg
ICAgcmV0dXJuOwogCkBAIC04Nyw3ICs4Nyw3IEBAIHZvaWQgTWVkaWFQbGF5YmFja1RhcmdldFBp
Y2tlck1vY2s6OnN0YXJ0aW5nTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cygpCiB7CiAgICAgTE9H
KE1lZGlhLCAiTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2s6OnN0YXJ0aW5nTW9uaXRvcmlu
Z1BsYXliYWNrVGFyZ2V0cyIpOwogCi0gICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgd2Vha1Ro
aXMgPSBtYWtlV2Vha1B0cigqdGhpcyldIHsKKyAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCB3
ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAg
ICAgICAgICAgICByZXR1cm47CiAKQEAgLTExNCw3ICsxMTQsNyBAQCB2b2lkIE1lZGlhUGxheWJh
Y2tUYXJnZXRQaWNrZXJNb2NrOjpzZXRTdGF0ZShjb25zdCBTdHJpbmcmIGRldmljZU5hbWUsIE1l
ZGlhUGxheQogewogICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNb2Nr
OjpzZXRTdGF0ZSAtIG5hbWUgPSAlcywgc3RhdGUgPSAweCV4IiwgZGV2aWNlTmFtZS51dGY4KCku
ZGF0YSgpLCAodW5zaWduZWQpc3RhdGUpOwogCi0gICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywg
d2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHN0YXRlLCBkZXZpY2VOYW1lXSB7CisgICAg
Y2FsbE9uTWFpblRocmVhZChbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgc3Rh
dGUsIGRldmljZU5hbWVdIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJl
dHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2Nv
YS9Db29raWVTdG9yYWdlT2JzZXJ2ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NvY29hL0Nvb2tpZVN0b3JhZ2VPYnNlcnZlci5tbQppbmRleCAwMDhlMDVmMTgyNmYyNGRl
YTE2NTllMDg4ZjRkNmQ2MDQ2NmVmMGYzLi4wNzE5OTE0NTViMmUyNTBhMzY5ZjMyOWIxYmY3OTcx
ZGM0MjM0OGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nv
Y29hL0Nvb2tpZVN0b3JhZ2VPYnNlcnZlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NvY29hL0Nvb2tpZVN0b3JhZ2VPYnNlcnZlci5tbQpAQCAtMTI5LDcgKzEyOSw3
IEBAIHZvaWQgQ29va2llU3RvcmFnZU9ic2VydmVyOjpzdG9wT2JzZXJ2aW5nKCkKIAogdm9pZCBD
b29raWVTdG9yYWdlT2JzZXJ2ZXI6OmNvb2tpZXNEaWRDaGFuZ2UoKQogewotICAgIGNhbGxPbk1h
aW5UaHJlYWQoW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSB7CisgICAgY2FsbE9uTWFp
blRocmVhZChbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0gewogICAgICAgICBpZiAod2Vh
a1RoaXMgJiYgd2Vha1RoaXMtPm1fY29va2llQ2hhbmdlQ2FsbGJhY2spCiAgICAgICAgICAgICB3
ZWFrVGhpcy0+bV9jb29raWVDaGFuZ2VDYWxsYmFjaygpOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Np
b25Db2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvTmV0d29y
a1N0b3JhZ2VTZXNzaW9uQ29jb2EubW0KaW5kZXggOGU0YTI4NjBlZTgxMTkwNmVjODY1NWNhNzE5
MzkyNjNlMzkzMmNhMC4uYjI4ZWJiZGRlYTRmYmEwMGEzMjFkMThkMjBiZWY0NWJkMDM5MmFjNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3Jr
U3RvcmFnZVNlc3Npb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tCkBAIC02MTUsNyArNjE1LDcg
QEAgdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnJlZ2lzdGVyQ29va2llQ2hhbmdlTGlzdGVu
ZXJzSWZOZWNlc3NhcnkoKQogCiAgICAgbV9kaWRSZWdpc3RlckNvb2tpZUxpc3RlbmVycyA9IHRy
dWU7CiAKLSAgICBbbnNDb29raWVTdG9yYWdlKCkgX3NldENvb2tpZXNDaGFuZ2VkSGFuZGxlcjpt
YWtlQmxvY2tQdHIoW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXShOU0FycmF5
PE5TSFRUUENvb2tpZSAqPiAqYWRkZWRDb29raWVzLCBOU1N0cmluZyAqZG9tYWluRm9yQ2hhbmdl
ZENvb2tpZSkgeworICAgIFtuc0Nvb2tpZVN0b3JhZ2UoKSBfc2V0Q29va2llc0NoYW5nZWRIYW5k
bGVyOm1ha2VCbG9ja1B0cihbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0oTlNB
cnJheTxOU0hUVFBDb29raWUgKj4gKmFkZGVkQ29va2llcywgTlNTdHJpbmcgKmRvbWFpbkZvckNo
YW5nZWRDb29raWUpIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgU3RyaW5nIGhvc3QgPSBkb21haW5Gb3JDaGFuZ2VkQ29va2llOwpAQCAtNjI5
LDcgKzYyOSw3IEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpyZWdpc3RlckNvb2tpZUNo
YW5nZUxpc3RlbmVyc0lmTmVjZXNzYXJ5KCkKICAgICAgICAgICAgIG9ic2VydmVyLT5jb29raWVz
QWRkZWQoaG9zdCwgY29va2llcyk7CiAgICAgfSkuZ2V0KCkgb25RdWV1ZTpkaXNwYXRjaF9nZXRf
bWFpbl9xdWV1ZSgpXTsKIAotICAgIFtuc0Nvb2tpZVN0b3JhZ2UoKSBfc2V0Q29va2llc1JlbW92
ZWRIYW5kbGVyOm1ha2VCbG9ja1B0cihbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhp
cyldKE5TQXJyYXk8TlNIVFRQQ29va2llICo+ICpyZW1vdmVkQ29va2llcywgTlNTdHJpbmcgKmRv
bWFpbkZvclJlbW92ZWRDb29raWVzLCBib29sIHJlbW92ZUFsbENvb2tpZXMpIHsKKyAgICBbbnND
b29raWVTdG9yYWdlKCkgX3NldENvb2tpZXNSZW1vdmVkSGFuZGxlcjptYWtlQmxvY2tQdHIoW3Ro
aXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dKE5TQXJyYXk8TlNIVFRQQ29va2llICo+
ICpyZW1vdmVkQ29va2llcywgTlNTdHJpbmcgKmRvbWFpbkZvclJlbW92ZWRDb29raWVzLCBib29s
IHJlbW92ZUFsbENvb2tpZXMpIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgaWYgKHJlbW92ZUFsbENvb2tpZXMpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL29wZW54ci9QbGF0Zm9ybVhST3BlblhSLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL29wZW54ci9QbGF0Zm9ybVhST3BlblhSLmNwcAppbmRl
eCBlOWRjNmI4MzYzMjQ1NDhkYjhkYjdmNGIzZTA0ZmFkMGIxOGE0NDI5Li4yZDk1ZWEzM2ViNjI1
N2Q1ZWEyMjRkNTBhYjE2MDYyNGYzYzA1YTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS94ci9vcGVueHIvUGxhdGZvcm1YUk9wZW5YUi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0veHIvb3BlbnhyL1BsYXRmb3JtWFJPcGVuWFIuY3BwCkBAIC00OTgsNyArNDk4
LDcgQEAgdm9pZCBPcGVuWFJEZXZpY2U6OmVuZFNlc3Npb24oKQogICAgICAgICByZXR1cm47CiAK
ICAgICAvLyBOb3RpZnkgZGlkIGVuZCBldmVudAotICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMs
IHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSgpIHsKKyAgICBjYWxsT25NYWluVGhyZWFk
KFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XSgpIHsKICAgICAgICAgaWYgKCF3
ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgaWYgKG1fdHJhY2tpbmdBbmRS
ZW5kZXJpbmdDbGllbnQpCkBAIC01ODcsNyArNTg3LDcgQEAgdm9pZCBPcGVuWFJEZXZpY2U6OnVw
ZGF0ZUludGVyYWN0aW9uUHJvZmlsZSgpCiAKICAgICBkaWROb3RpZnlJbnB1dEluaXRpYWxpemF0
aW9uID0gdHJ1ZTsKICAgICBhdXRvIGlucHV0U291cmNlcyA9IG1faW5wdXQtPmNvbGxlY3RJbnB1
dFNvdXJjZXMobV9mcmFtZVN0YXRlKTsKLSAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCB3ZWFr
VGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgaW5wdXRTb3VyY2VzID0gV1RGTW92ZShpbnB1dFNv
dXJjZXMpXSgpIG11dGFibGUgeworICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHdlYWtUaGlz
ID0gV2Vha1B0ciB7ICp0aGlzIH0sIGlucHV0U291cmNlcyA9IFdURk1vdmUoaW5wdXRTb3VyY2Vz
KV0oKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgaWYgKG1fdHJhY2tpbmdBbmRSZW5kZXJpbmdDbGllbnQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCmluZGV4IDY1NjZiMzgzMTJhYWIyMmRkMTdi
ZjEwYmQ0M2Y5MWNmNmI1NTE0MDIuLjBmNTBiNDFkNjE2NzU5ODljNTZkMmMwZmJlNGExODExMWM2
YTQ2MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCkBAIC0x
MzcsNyArMTM3LDcgQEAgYm9vbCBSZW5kZXJXaWRnZXQ6OnNldFdpZGdldEdlb21ldHJ5KGNvbnN0
IExheW91dFJlY3QmIGZyYW1lKQogCiAgICAgbV9jbGlwUmVjdCA9IGNsaXBSZWN0OwogCi0gICAg
YXV0byB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKTsKKyAgICBXZWFrUHRyIHdlYWtUaGlz
IHsgKnRoaXMgfTsKICAgICAvLyBUaGVzZSBjYWxscyAqbWF5KiBjYXVzZSB0aGlzIHJlbmRlcmVy
IHRvIGRpc2FwcGVhciBmcm9tIHVuZGVybmVhdGguLi4KICAgICBpZiAoYm91bmRzQ2hhbmdlZCkK
ICAgICAgICAgbV93aWRnZXQtPnNldEZyYW1lUmVjdChuZXdGcmFtZVJlY3QpOwpAQCAtMTg3LDcg
KzE4Nyw3IEBAIHZvaWQgUmVuZGVyV2lkZ2V0OjpzZXRXaWRnZXQoUmVmUHRyPFdpZGdldD4mJiB3
aWRnZXQpCiAgICAgICAgIC8vIHdpZGdldCBpbW1lZGlhdGVseSwgYnV0IHdlIGhhdmUgdG8gaGF2
ZSByZWFsbHkgYmVlbiBmdWxseSBjb25zdHJ1Y3RlZC4KICAgICAgICAgaWYgKGhhc0luaXRpYWxp
emVkU3R5bGUoKSkgewogICAgICAgICAgICAgaWYgKCFuZWVkc0xheW91dCgpKSB7Ci0gICAgICAg
ICAgICAgICAgYXV0byB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKTsKKyAgICAgICAgICAg
ICAgICBXZWFrUHRyIHdlYWtUaGlzIHsgKnRoaXMgfTsKICAgICAgICAgICAgICAgICB1cGRhdGVX
aWRnZXRHZW9tZXRyeSgpOwogICAgICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAg
ICAgICAgICAgICAgIHJldHVybjsKQEAgLTM1Myw3ICszNTMsNyBAQCBSZW5kZXJXaWRnZXQ6OkNo
aWxkV2lkZ2V0U3RhdGUgUmVuZGVyV2lkZ2V0Ojp1cGRhdGVXaWRnZXRQb3NpdGlvbigpCiAgICAg
aWYgKCFtX3dpZGdldCkKICAgICAgICAgcmV0dXJuIENoaWxkV2lkZ2V0U3RhdGU6OkRlc3Ryb3ll
ZDsKIAotICAgIGF1dG8gd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyk7CisgICAgV2Vha1B0
ciB3ZWFrVGhpcyB7ICp0aGlzIH07CiAgICAgYm9vbCB3aWRnZXRTaXplQ2hhbmdlZCA9IHVwZGF0
ZVdpZGdldEdlb21ldHJ5KCk7CiAgICAgaWYgKCF3ZWFrVGhpcyB8fCAhbV93aWRnZXQpCiAgICAg
ICAgIHJldHVybiBDaGlsZFdpZGdldFN0YXRlOjpEZXN0cm95ZWQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL1dlYkZha2VYUkRldmljZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL1dlYkZha2VYUkRldmljZS5jcHAKaW5kZXggNzVkOGU5YmE3NjE3ZWI2MjIzYTBlZDQ4
MDZmMzFjMDE1ODg3NTIxMS4uNjIxZGU2YjdlZGE3Y2Y3Nzg0ODc4MzNjMWQyYjRjNzRhM2MzMjM2
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJGYWtlWFJEZXZpY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2ViRmFrZVhSRGV2aWNlLmNwcApAQCAtMTE2
LDcgKzExNiw3IEBAIHZvaWQgU2ltdWxhdGVkWFJEZXZpY2U6OmluaXRpYWxpemVUcmFja2luZ0Fu
ZFJlbmRlcmluZyhQbGF0Zm9ybVhSOjpTZXNzaW9uTW9kZSkKICAgICAgICAgLy8gVGhlcmUgaXMg
bm8gd2F5IHRvIGtub3cgaG93IG1hbnkgc2ltdWxhdGVJbnB1dENvbm5lY3Rpb24gY2FsbHMgd2ls
bCB0aGUgZGV2aWNlIHJlY2VpdmUsCiAgICAgICAgIC8vIHNvIG5vdGlmeSB0aGUgaW5wdXQgc291
cmNlcyBoYXZlIGJlZW4gaW5pdGlhbGl6ZWQgd2l0aCBhbiBlbXB0eSBsaXN0LiBUaGlzIGlzIG5v
dCBhIHByb2JsZW0gYmVjYXVzZQogICAgICAgICAvLyBXUFQgdGVzdHMgcmVseSBvbiByZXF1ZXN0
QW5pbWF0aW9uRnJhbWUgdXBkYXRlcyB0byB0ZXN0IHRoZSBpbnB1dCBzb3VyY2VzLgotICAgICAg
ICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0o
KSB7CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7
ICp0aGlzIH1dKCkgewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgICAgICBpZiAobV90cmFja2luZ0FuZFJlbmRlcmluZ0NsaWVudCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclJ1bkxvb3AuY3BwCmluZGV4IDZiYzEyNzc3ZTQ1
ODlmYTQ3MWRmNjAwZjNjMDg4MTE2NDQ5MzNmZTcuLjNhY2ZmNjY4YjhlNTAyYWY0NTE4YzFiYWEz
MDBjZTNkZjI0NWRmN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
UnVuTG9vcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmNw
cApAQCAtMjg5LDcgKzI4OSw3IEBAIHZvaWQgV29ya2VyTWFpblJ1bkxvb3A6OnBvc3RUYXNrQW5k
VGVybWluYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2smJiB0YXNrCiAgICAgaWYgKG1f
dGVybWluYXRlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUnVuTG9vcDo6bWFpbigpLmRpc3Bh
dGNoKFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgdGFzayA9IFdURk1vdmUodGFzayld
KCkgbXV0YWJsZSB7CisgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt3ZWFrVGhpcyA9IFdl
YWtQdHIgeyAqdGhpcyB9LCB0YXNrID0gV1RGTW92ZSh0YXNrKV0oKSBtdXRhYmxlIHsKICAgICAg
ICAgaWYgKCF3ZWFrVGhpcyB8fCAhd2Vha1RoaXMtPm1fd29ya2VyT3JXb3JrbGV0R2xvYmFsU2Nv
cGUgfHwgd2Vha1RoaXMtPm1fdGVybWluYXRlZCkKICAgICAgICAgICAgIHJldHVybjsKIApAQCAt
MzAzLDcgKzMwMyw3IEBAIHZvaWQgV29ya2VyTWFpblJ1bkxvb3A6OnBvc3RUYXNrRm9yTW9kZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrJiYgdGFzaywgY29uCiAgICAgaWYgKG1fdGVybWlu
YXRlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt3
ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgdGFzayA9IFdURk1vdmUodGFzayldKCkgbXV0
YWJsZSB7CisgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt3ZWFrVGhpcyA9IFdlYWtQdHIg
eyAqdGhpcyB9LCB0YXNrID0gV1RGTW92ZSh0YXNrKV0oKSBtdXRhYmxlIHsKICAgICAgICAgaWYg
KCF3ZWFrVGhpcyB8fCAhd2Vha1RoaXMtPm1fd29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUgfHwg
d2Vha1RoaXMtPm1fdGVybWluYXRlZCkKICAgICAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Q2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKaW5kZXgg
NTA4YjBkZTk2NDIwMGM3MzZjZGIxMzk5YzI0ZTUyNmViYTk3ODU1My4uMjY4NTUyMGY4MjFkNTY2
OTUzY2I0NzRkN2M3YWViOGI5MzU4OGFkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCkBAIC0yMTc1LDcgKzIxNzUsNyBAQCB2
b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjp1cGRhdGVDb29raWVCbG9j
a2luZyhDb21wbGV0aW9uSGFuZGxlcgogICAgIGlmIChkZWJ1Z0xvZ2dpbmdFbmFibGVkKCkgJiYg
KCFkb21haW5zVG9CbG9ja0FuZERlbGV0ZUNvb2tpZXNGb3IuaXNFbXB0eSgpIHx8ICFkb21haW5z
VG9CbG9ja0J1dEtlZXBDb29raWVzRm9yLmlzRW1wdHkoKSkpCiAgICAgICAgIGRlYnVnTG9nRG9t
YWluc0luQmF0Y2hlcygiQXBwbHlpbmcgY3Jvc3Mtc2l0ZSB0cmFja2luZyByZXN0cmljdGlvbnMi
LCBkb21haW5zVG9CbG9jayk7CiAKLSAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3dlYWtU
aGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBzdG9yZSA9IFJlZiB7IHN0b3JlKCkgfSwgZG9tYWlu
c1RvQmxvY2sgPSBjcm9zc1RocmVhZENvcHkoZG9tYWluc1RvQmxvY2spLCBjb21wbGV0aW9uSGFu
ZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsKKyAgICBSdW5M
b29wOjptYWluKCkuZGlzcGF0Y2goW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHN0b3Jl
ID0gUmVmIHsgc3RvcmUoKSB9LCBkb21haW5zVG9CbG9jayA9IGNyb3NzVGhyZWFkQ29weShkb21h
aW5zVG9CbG9jayksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cildICgpIG11dGFibGUgewogICAgICAgICBzdG9yZS0+Y2FsbFVwZGF0ZVByZXZhbGVudERvbWFp
bnNUb0Jsb2NrQ29va2llc0ZvckhhbmRsZXIoZG9tYWluc1RvQmxvY2ssIFt3ZWFrVGhpcyA9IFdU
Rk1vdmUod2Vha1RoaXMpLCBzdG9yZSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIHN0b3JlLT5zdGF0aXN0aWNz
UXVldWUoKS5kaXNwYXRjaChbd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwgY29tcGxldGlv
bkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKICAgICAg
ICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlLmNwcAppbmRleCAwOTQ0NjYwNTA2MGMxZTJiOWJiMzQyMTVmMDVhNGUz
YmRkODUxMzFlLi40OTNlNDNhZTBiNmJiZTg4NzViOTljNjZhNTgyZmFlNmI1NDc2MGNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcApAQCAtMTgzLDcgKzE4
Myw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZW1vdmVEYXRhUmVjb3Jk
cyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYKIAogICAgIHNldERhdGFSZWNvcmRzQmVpbmdS
ZW1vdmVkKHRydWUpOwogCi0gICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtzdG9yZSA9IFJl
ZiB7IG1fc3RvcmUgfSwgZG9tYWluc1RvRGVsZXRlT3JSZXN0cmljdFdlYnNpdGVEYXRhRm9yID0g
Y3Jvc3NUaHJlYWRDb3B5KGRvbWFpbnNUb0RlbGV0ZU9yUmVzdHJpY3RXZWJzaXRlRGF0YUZvciks
IGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHdlYWtUaGlz
ID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBzaG91bGROb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dl
cmVTY2FubmVkID0gbV9wYXJhbWV0ZXJzLnNob3VsZE5vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRz
V2VyZVNjYW5uZWQsIHdvcmtRdWV1ZSA9IG1fd29ya1F1ZXVlXSAoKSBtdXRhYmxlIHsKKyAgICBS
dW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3N0b3JlID0gUmVmIHsgbV9zdG9yZSB9LCBkb21haW5z
VG9EZWxldGVPclJlc3RyaWN0V2Vic2l0ZURhdGFGb3IgPSBjcm9zc1RocmVhZENvcHkoZG9tYWlu
c1RvRGVsZXRlT3JSZXN0cmljdFdlYnNpdGVEYXRhRm9yKSwgY29tcGxldGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwg
c2hvdWxkTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCA9IG1fcGFyYW1ldGVy
cy5zaG91bGROb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkLCB3b3JrUXVldWUg
PSBtX3dvcmtRdWV1ZV0gKCkgbXV0YWJsZSB7CiAgICAgICAgIHN0b3JlLT5kZWxldGVBbmRSZXN0
cmljdFdlYnNpdGVEYXRhRm9yUmVnaXN0cmFibGVEb21haW5zKFdlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZTo6bW9uaXRvcmVkRGF0YVR5cGVzKCksIFdURk1vdmUoZG9tYWluc1RvRGVsZXRl
T3JSZXN0cmljdFdlYnNpdGVEYXRhRm9yKSwgc2hvdWxkTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29y
ZHNXZXJlU2Nhbm5lZCwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlciksIHdlYWtUaGlzID0gV1RGTW92ZSh3ZWFrVGhpcyksIHdvcmtRdWV1ZV0oY29uc3QgSGFz
aFNldDxSZWdpc3RyYWJsZURvbWFpbj4mIGRvbWFpbnNXaXRoRGVsZXRlZFdlYnNpdGVEYXRhKSBt
dXRhYmxlIHsKICAgICAgICAgICAgIHdvcmtRdWV1ZS0+ZGlzcGF0Y2goW2RvbWFpbnNXaXRoRGVs
ZXRlZFdlYnNpdGVEYXRhID0gY3Jvc3NUaHJlYWRDb3B5KGRvbWFpbnNXaXRoRGVsZXRlZFdlYnNp
dGVEYXRhKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwg
d2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICAg
ICAgaWYgKCF3ZWFrVGhpcykgewpAQCAtMjE5LDcgKzIxOSw3IEBAIHZvaWQgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlOjpwcm9jZXNzU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzKCkKICAgICBp
ZiAobV9wYXJhbWV0ZXJzLnNob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNS
ZW1vdmFsKQogICAgICAgICBjbGFzc2lmeVByZXZhbGVudFJlc291cmNlcygpOwogICAgIAotICAg
IHJlbW92ZURhdGFSZWNvcmRzKFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0g
KCkgbXV0YWJsZSB7CisgICAgcmVtb3ZlRGF0YVJlY29yZHMoW3RoaXMsIHdlYWtUaGlzID0gV2Vh
a1B0ciB7ICp0aGlzIH1dICgpIG11dGFibGUgewogICAgICAgICBBU1NFUlQoIVJ1bkxvb3A6Omlz
TWFpbigpKTsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKQEAg
LTI0MSw3ICsyNDEsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Z3JhbmRm
YXRoZXJFeGlzdGluZ1dlYnNpdGVEYXRhKENvbXBsZXRpb25IYW5kbAogewogICAgIEFTU0VSVCgh
UnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt3ZWFr
VGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwg
c2hvdWxkTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCA9IG1fcGFyYW1ldGVy
cy5zaG91bGROb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkLCB3b3JrUXVldWUg
PSBtX3dvcmtRdWV1ZSwgc3RvcmUgPSBSZWYgeyBtX3N0b3JlIH1dICgpIG11dGFibGUgeworICAg
IFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwg
Y2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgc2hvdWxkTm90aWZ5UGFnZXNXaGVuRGF0YVJl
Y29yZHNXZXJlU2Nhbm5lZCA9IG1fcGFyYW1ldGVycy5zaG91bGROb3RpZnlQYWdlc1doZW5EYXRh
UmVjb3Jkc1dlcmVTY2FubmVkLCB3b3JrUXVldWUgPSBtX3dvcmtRdWV1ZSwgc3RvcmUgPSBSZWYg
eyBtX3N0b3JlIH1dICgpIG11dGFibGUgewogICAgICAgICBzdG9yZS0+cmVnaXN0cmFibGVEb21h
aW5zV2l0aFdlYnNpdGVEYXRhKFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6bW9uaXRv
cmVkRGF0YVR5cGVzKCksIHNob3VsZE5vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5u
ZWQsIFt3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCBjYWxsYmFjayA9IFdURk1vdmUoY2Fs
bGJhY2spLCB3b3JrUXVldWVdIChIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPiYmIGRvbWFpbnNX
aXRoV2Vic2l0ZURhdGEpIG11dGFibGUgewogICAgICAgICAgICAgd29ya1F1ZXVlLT5kaXNwYXRj
aChbd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwgZG9tYWluc1dpdGhXZWJzaXRlRGF0YSA9
IGNyb3NzVGhyZWFkQ29weShkb21haW5zV2l0aFdlYnNpdGVEYXRhKSwgY2FsbGJhY2sgPSBXVEZN
b3ZlKGNhbGxiYWNrKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgaWYgKCF3ZWFrVGhp
cykgewpAQCAtMjk5LDcgKzI5OSw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
OjpzY2hlZHVsZVN0YXRpc3RpY3NQcm9jZXNzaW5nUmVxdWVzdElmTmVjZXNzYXJ5CiAgICAgQVNT
RVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKICAgICBtX3BlbmRpbmdTdGF0aXN0aWNzUHJvY2Vz
c2luZ1JlcXVlc3RJZGVudGlmaWVyID0gKyttX2xhc3RTdGF0aXN0aWNzUHJvY2Vzc2luZ1JlcXVl
c3RJZGVudGlmaWVyOwotICAgIG1fd29ya1F1ZXVlLT5kaXNwYXRjaEFmdGVyKG1pbmltdW1TdGF0
aXN0aWNzUHJvY2Vzc2luZ0ludGVydmFsLCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigq
dGhpcyksIHN0YXRpc3RpY3NQcm9jZXNzaW5nUmVxdWVzdElkZW50aWZpZXIgPSAqbV9wZW5kaW5n
U3RhdGlzdGljc1Byb2Nlc3NpbmdSZXF1ZXN0SWRlbnRpZmllcl0geworICAgIG1fd29ya1F1ZXVl
LT5kaXNwYXRjaEFmdGVyKG1pbmltdW1TdGF0aXN0aWNzUHJvY2Vzc2luZ0ludGVydmFsLCBbdGhp
cywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgc3RhdGlzdGljc1Byb2Nlc3NpbmdSZXF1
ZXN0SWRlbnRpZmllciA9ICptX3BlbmRpbmdTdGF0aXN0aWNzUHJvY2Vzc2luZ1JlcXVlc3RJZGVu
dGlmaWVyXSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAK
QEAgLTQ4Niw3ICs0ODYsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6ZGlk
Q3JlYXRlTmV0d29ya1Byb2Nlc3MoKQogdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6
OmRlYnVnQnJvYWRjYXN0Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3Nh
Z2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewogICAgIGlmICghUnVuTG9v
cDo6aXNNYWluKCkpIHsKLSAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFsmLCB3ZWFr
VGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgc291cmNlID0gY3Jvc3NUaHJlYWRDb3B5KHNvdXJj
ZSksIGxldmVsID0gY3Jvc3NUaHJlYWRDb3B5KGxldmVsKSwgbWVzc2FnZSA9IGNyb3NzVGhyZWFk
Q29weShtZXNzYWdlKV0oKSB7CisgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbJiwg
d2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgc291cmNlID0gY3Jvc3NUaHJlYWRDb3B5KHNv
dXJjZSksIGxldmVsID0gY3Jvc3NUaHJlYWRDb3B5KGxldmVsKSwgbWVzc2FnZSA9IGNyb3NzVGhy
ZWFkQ29weShtZXNzYWdlKV0oKSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAg
ICAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwCmluZGV4IDY0MmJmMWI1YWRmY2I3NjFjN2RlNjFjZThm
N2ViZDFlNWMxOGM3NTQuLjRiYjA0NjBjN2MwNjhkNmYyZDFiODQ5MWI3MzdmMzcxMmRhOWE2YTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25s
b2FkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3du
bG9hZC5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgdm9pZCBEb3dubG9hZDo6Y2FuY2VsKENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJik+JiYgY29tcGwKICAgICAv
LyBjb21wbGV0aW9uSGFuZGxlciB3aWxsIGluZm9ybSB0aGUgQVBJIHRoYXQgdGhlIGNhbmNlbGxh
dGlvbiBzdWNjZWVkZWQuCiAgICAgbV9pZ25vcmVEaWRGYWlsQ2FsbGJhY2sgPSBpZ25vcmVEaWRG
YWlsQ2FsbGJhY2s7CiAKLSAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyV3JhcHBlciA9IFt0aGlz
LCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgcmVzdW1l
RGF0YSkgbXV0YWJsZSB7CisgICAgYXV0byBjb21wbGV0aW9uSGFuZGxlcldyYXBwZXIgPSBbdGhp
cywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgcmVzdW1l
RGF0YSkgbXV0YWJsZSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHJlc3VtZURhdGEpOwog
ICAgICAgICBpZiAoIXdlYWtUaGlzIHx8IG1faWdub3JlRGlkRmFpbENhbGxiYWNrID09IElnbm9y
ZURpZEZhaWxDYWxsYmFjazo6Tm8pCiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHAKaW5kZXggZWQxNDU0NmMw
N2ExOTNhOWNjMmE3ZmI5Yzg5N2E0ZWZlZjBjODM4Zi4uZGVlNGY4OTc0MjgzYjQwMDEwOTZjOWFk
Mzk2NjkzNjhmNzRjMWJjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrRGF0YVRhc2suY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0RhdGFUYXNrLmNwcApAQCAtOTQsNyArOTQsNyBAQCBOZXR3b3JrRGF0YVRhc2s6On5O
ZXR3b3JrRGF0YVRhc2soKQogCiB2b2lkIE5ldHdvcmtEYXRhVGFzazo6c2NoZWR1bGVGYWlsdXJl
KEZhaWx1cmVUeXBlIHR5cGUpCiB7Ci0gICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt0aGlz
LCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgdHlwZV0geworICAgIFJ1bkxvb3A6Om1h
aW4oKS5kaXNwYXRjaChbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgdHlwZV0g
ewogICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICFtX2NsaWVudCkKICAgICAgICAgICAgIHJldHVy
bjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9h
ZENoZWNrZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENo
ZWNrZXIuY3BwCmluZGV4IDJiMjE2NDJhZjJhMzhiMGMzZDA2NGM1M2E4YjE3NzkxZjhmY2FlMGMu
LmNiYzQ1MTgyMTFhOWE0ZGY2ZTgyODdhYTBkZDM1ODkxYWY5MmMwYjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHAKQEAgLTI0
NSw3ICsyNDUsNyBAQCB2b2lkIE5ldHdvcmtMb2FkQ2hlY2tlcjo6Y2hlY2tSZXF1ZXN0KFJlc291
cmNlUmVxdWVzdCYmIHJlcXVlc3QsIENvbnRlbnRTZWN1cml0eQogICAgIH0KIAogI2lmIEVOQUJM
RShDT05URU5UX0VYVEVOU0lPTlMpCi0gICAgdGhpcy0+cHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNG
b3JMb2FkKFdURk1vdmUocmVxdWVzdCksIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwg
aGFuZGxlciA9IFdURk1vdmUoaGFuZGxlciksIG9yaWdpbmFsUmVxdWVzdCA9IFdURk1vdmUob3Jp
Z2luYWxSZXF1ZXN0KV0oYXV0byYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgdGhpcy0+cHJvY2Vz
c0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKFdURk1vdmUocmVxdWVzdCksIFt3ZWFrVGhpcyA9IFdl
YWtQdHIgeyAqdGhpcyB9LCBoYW5kbGVyID0gV1RGTW92ZShoYW5kbGVyKSwgb3JpZ2luYWxSZXF1
ZXN0ID0gV1RGTW92ZShvcmlnaW5hbFJlcXVlc3QpXShhdXRvJiYgcmVzdWx0KSBtdXRhYmxlIHsK
ICAgICAgICAgaWYgKCFyZXN1bHQuaGFzX3ZhbHVlKCkpIHsKICAgICAgICAgICAgIEFTU0VSVChy
ZXN1bHQuZXJyb3IoKS5pc0NhbmNlbGxhdGlvbigpKTsKICAgICAgICAgICAgIGhhbmRsZXIoV1RG
TW92ZShyZXN1bHQuZXJyb3IoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCBkMTdmMzg1NzJlZWE1MjZjY2U0ZmEyZWQ1ZjE0NjQz
MzZmOTA2YTU5Li4xZDVhY2Q1MDIyZDI2NTU3NTA3MmEwNWVlNGZiMWQ3N2FhNGVhMTc0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAt
MTgwLDcgKzE4MCw3IEBAIE5ldHdvcmtQcm9jZXNzOjpOZXR3b3JrUHJvY2VzcyhBdXhpbGlhcnlQ
cm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1lCiAgICAgTGVnYWN5Q3VzdG9t
UHJvdG9jb2xNYW5hZ2VyOjpuZXR3b3JrUHJvY2Vzc0NyZWF0ZWQoKnRoaXMpOwogI2VuZGlmCiAK
LSAgICBOZXR3b3JrU3RhdGVOb3RpZmllcjo6c2luZ2xldG9uKCkuYWRkTGlzdGVuZXIoW3dlYWtU
aGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXShib29sIGlzT25MaW5lKSB7CisgICAgTmV0d29ya1N0
YXRlTm90aWZpZXI6OnNpbmdsZXRvbigpLmFkZExpc3RlbmVyKFt3ZWFrVGhpcyA9IFdlYWtQdHIg
eyAqdGhpcyB9XShib29sIGlzT25MaW5lKSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIGZvciAoYXV0byYgd2ViUHJvY2Vzc0Nvbm5lY3Rpb24g
OiB3ZWFrVGhpcy0+bV93ZWJQcm9jZXNzQ29ubmVjdGlvbnMudmFsdWVzKCkpCkBAIC0yMjIyLDcg
KzIyMjIsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzdXNwZW5kSURCU2VydmVycyhib29sIGlz
U3VzcGVuc2lvbkltbWluZW50KQogICAgIGlmIChhbGxTdXNwZW5kZWQpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaEFmdGVyKDVfcywgW3RoaXMsIHdlYWtU
aGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBzdXNwZW5zaW9uSWRlbnRpZmllciA9IG1fc3VzcGVu
c2lvbklkZW50aWZpZXJdIHsKKyAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2hBZnRlcig1X3Ms
IFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBzdXNwZW5zaW9uSWRlbnRpZmll
ciA9IG1fc3VzcGVuc2lvbklkZW50aWZpZXJdIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAg
ICAgICAgICAgIHJldHVybjsKIApAQCAtMjU0NSw3ICsyNTQ1LDcgQEAgUmVmUHRyPFN0b3JhZ2VR
dW90YU1hbmFnZXI+IE5ldHdvcmtQcm9jZXNzOjpzdG9yYWdlUXVvdGFNYW5hZ2VyKFBBTDo6U2Vz
c2lvbklEIHMKIAogICAgICAgICByZXR1cm4gQ2FjaGVTdG9yYWdlOjpFbmdpbmU6OmRpc2tVc2Fn
ZShjYWNoZVJvb3RQYXRoLCBvcmlnaW4pICsgSURCU2VydmVyOjpJREJTZXJ2ZXI6OmRpc2tVc2Fn
ZShpZGJSb290UGF0aCwgb3JpZ2luKTsKICAgICB9OwotICAgIFN0b3JhZ2VRdW90YU1hbmFnZXI6
OlF1b3RhSW5jcmVhc2VSZXF1ZXN0ZXIgcXVvdGFJbmNyZWFzZVJlcXVlc3RlciA9IFt0aGlzLCB3
ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgc2Vzc2lvbklELCBvcmlnaW5dICh1aW50NjRf
dCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRTcGFjZSwgdWludDY0X3QgcmVxdWVzdGVk
SW5jcmVhc2UsIGF1dG8mJiBjYWxsYmFjaykgeworICAgIFN0b3JhZ2VRdW90YU1hbmFnZXI6OlF1
b3RhSW5jcmVhc2VSZXF1ZXN0ZXIgcXVvdGFJbmNyZWFzZVJlcXVlc3RlciA9IFt0aGlzLCB3ZWFr
VGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBzZXNzaW9uSUQsIG9yaWdpbl0gKHVpbnQ2NF90IGN1
cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudFNwYWNlLCB1aW50NjRfdCByZXF1ZXN0ZWRJbmNy
ZWFzZSwgYXV0byYmIGNhbGxiYWNrKSB7CiAgICAgICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkp
OwogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgY2FsbGJhY2soeyB9KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9h
ZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9h
ZGVyLmNwcAppbmRleCA3NmYxMjkzZTQ4NDhlNGVmNGUyOTA0ZTU4NTc1MWM0Y2Y2ZTRjOGE5Li5i
ZjVjNDE5ZmQ0ZmVmN2U0ZTAyZDZjMDc0N2I1Y2NmOTUzYzNmNGM1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCkBA
IC0xODgsNyArMTg4LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0KCkKICAg
ICBtX3dhc1N0YXJ0ZWQgPSB0cnVlOwogCiAgICAgaWYgKG1fbmV0d29ya0xvYWRDaGVja2VyKSB7
Ci0gICAgICAgIG1fbmV0d29ya0xvYWRDaGVja2VyLT5jaGVjayhSZXNvdXJjZVJlcXVlc3QgeyBv
cmlnaW5hbFJlcXVlc3QoKSB9LCB0aGlzLCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigq
dGhpcyldIChhdXRvJiYgcmVzdWx0KSB7CisgICAgICAgIG1fbmV0d29ya0xvYWRDaGVja2VyLT5j
aGVjayhSZXNvdXJjZVJlcXVlc3QgeyBvcmlnaW5hbFJlcXVlc3QoKSB9LCB0aGlzLCBbdGhpcywg
d2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0gKGF1dG8mJiByZXN1bHQpIHsKICAgICAgICAg
ICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCkBAIC0yNTMsNyAr
MjUzLDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnJldHJpZXZlQ2FjaGVFbnRyeShj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiAgICAgfQogCiAgICAgTE9BREVSX1JFTEVB
U0VfTE9HKCJyZXRyaWV2ZUNhY2hlRW50cnk6IENoZWNraW5nIHRoZSBIVFRQIGRpc2sgY2FjaGUi
KTsKLSAgICBtX2NhY2hlLT5yZXRyaWV2ZShyZXF1ZXN0LCBnbG9iYWxGcmFtZUlEKCksIG1fcGFy
YW1ldGVycy5pc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBbdGhpcywgd2Vha1RoaXMgPSBt
YWtlV2Vha1B0cigqdGhpcyksIHJlcXVlc3QgPSBSZXNvdXJjZVJlcXVlc3QgeyByZXF1ZXN0IH1d
KGF1dG8gZW50cnksIGF1dG8gaW5mbykgbXV0YWJsZSB7CisgICAgbV9jYWNoZS0+cmV0cmlldmUo
cmVxdWVzdCwgZ2xvYmFsRnJhbWVJRCgpLCBtX3BhcmFtZXRlcnMuaXNOYXZpZ2F0aW5nVG9BcHBC
b3VuZERvbWFpbiwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHJlcXVlc3Qg
PSBSZXNvdXJjZVJlcXVlc3QgeyByZXF1ZXN0IH1dKGF1dG8gZW50cnksIGF1dG8gaW5mbykgbXV0
YWJsZSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAKQEAg
LTM0Myw3ICszNDMsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnROZXR3b3Jr
TG9hZChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBGaXJzdExvYQogICAgIHBhcmFtZXRlcnMu
aXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiA9IG1fcGFyYW1ldGVycy5pc05hdmlnYXRpbmdU
b0FwcEJvdW5kRG9tYWluOwogICAgIG1fbmV0d29ya0xvYWQgPSBtYWtlVW5pcXVlPE5ldHdvcmtM
b2FkPigqdGhpcywgJm5ldHdvcmtTZXNzaW9uLT5ibG9iUmVnaXN0cnkoKSwgV1RGTW92ZShwYXJh
bWV0ZXJzKSwgKm5ldHdvcmtTZXNzaW9uKTsKICAgICAKLSAgICBhdXRvIHdlYWtUaGlzID0gbWFr
ZVdlYWtQdHIoKnRoaXMpOworICAgIFdlYWtQdHIgd2Vha1RoaXMgeyAqdGhpcyB9OwogICAgIGlm
IChpc1N5bmNocm9ub3VzKCkpCiAgICAgICAgIG1fbmV0d29ya0xvYWQtPnN0YXJ0KCk7IC8vIE1h
eSBkZWxldGUgdGhpcyBvYmplY3QKICAgICBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCmluZGV4IGY5NTdmYmFmYjRjNjUyODBjY2Y2NTQ3
NjI4ZjUyZDliODViNGVhMGUuLmJhMmQ0Y2UzNWZlODM1ZGQzMmZmYTIyYzQ3ZTQyZWVjZDUwN2Nh
ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Np
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24u
Y3BwCkBAIC0zNTIsNyArMzUyLDcgQEAgdm9pZCBOZXR3b3JrU2Vzc2lvbjo6aGFuZGxlUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRDb252ZXJzaW9uKFByaXZhdGVDbGlja01lYXN1cmUKICAgICAgICAg
ICAgIHJldHVybjsKIAogICAgICAgICAvLyBJbnNlcnQgZXBoZW1lcmFsIG1lYXN1cmVtZW50IHJp
Z2h0IGJlZm9yZSBhdHRyaWJ1dGlvbi4KLSAgICAgICAgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQo
KS5zdG9yZVVuYXR0cmlidXRlZChXVEZNb3ZlKGVwaGVtZXJhbE1lYXN1cmVtZW50KSwgW3RoaXMs
IHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhID0g
V1RGTW92ZShhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKSwgcmVxdWVzdFVSTCwgcmVkaXJlY3REb21h
aW4gPSBXVEZNb3ZlKHJlZGlyZWN0RG9tYWluKSwgZmlyc3RQYXJ0eUZvckNvb2tpZXMgPSBXVEZN
b3ZlKGZpcnN0UGFydHlGb3JDb29raWVzKSwgYXBwQnVuZGxlSUQgPSBXVEZNb3ZlKGFwcEJ1bmRs
ZUlEKV0gKCkgbXV0YWJsZSB7CisgICAgICAgIHByaXZhdGVDbGlja01lYXN1cmVtZW50KCkuc3Rv
cmVVbmF0dHJpYnV0ZWQoV1RGTW92ZShlcGhlbWVyYWxNZWFzdXJlbWVudCksIFt0aGlzLCB3ZWFr
VGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhID0gV1RGTW92
ZShhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKSwgcmVxdWVzdFVSTCwgcmVkaXJlY3REb21haW4gPSBX
VEZNb3ZlKHJlZGlyZWN0RG9tYWluKSwgZmlyc3RQYXJ0eUZvckNvb2tpZXMgPSBXVEZNb3ZlKGZp
cnN0UGFydHlGb3JDb29raWVzKSwgYXBwQnVuZGxlSUQgPSBXVEZNb3ZlKGFwcEJ1bmRsZUlEKV0g
KCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgICAgIHByaXZhdGVDbGlja01lYXN1cmVtZW50KCkuaGFuZGxlQXR0
cmlidXRpb24oV1RGTW92ZShhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKSwgcmVxdWVzdFVSTCwgV1RG
TW92ZShyZWRpcmVjdERvbWFpbiksIGZpcnN0UGFydHlGb3JDb29raWVzLCBhcHBCdW5kbGVJRCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuY3BwCmluZGV4IGM1ZWE4ODM1
ZjRlMTVkMDk3MDgyNWE0MWRhZmM1YzlkYTYzNGY0N2EuLjExNDg1M2U0NWI3MjUzMzY0Yzc0N2E3
MWNiMmI1YWI4Y2MzOGVmZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvUGluZ0xvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xv
YWQuY3BwCkBAIC04MSw3ICs4MSw3IEBAIHZvaWQgUGluZ0xvYWQ6OmluaXRpYWxpemUoTmV0d29y
a1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzKQogICAgIC8vIFNldCBhIHZlcnkgZ2VuZXJvdXMgdGlt
ZW91dCwganVzdCBpbiBjYXNlLgogICAgIG1fdGltZW91dFRpbWVyLnN0YXJ0T25lU2hvdCg2MDAw
MF9zKTsKIAotICAgIG1fbmV0d29ya0xvYWRDaGVja2VyLT5jaGVjayhSZXNvdXJjZVJlcXVlc3Qg
eyBtX3BhcmFtZXRlcnMucmVxdWVzdCB9LCBudWxscHRyLCBbdGhpcywgd2Vha1RoaXMgPSBtYWtl
V2Vha1B0cigqdGhpcyksIG5ldHdvcmtQcm9jZXNzID0gUmVmIHsgbmV0d29ya1Byb2Nlc3MgfV0g
KGF1dG8mJiByZXN1bHQpIHsKKyAgICBtX25ldHdvcmtMb2FkQ2hlY2tlci0+Y2hlY2soUmVzb3Vy
Y2VSZXF1ZXN0IHsgbV9wYXJhbWV0ZXJzLnJlcXVlc3QgfSwgbnVsbHB0ciwgW3RoaXMsIHdlYWtU
aGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIG5ldHdvcmtQcm9jZXNzID0gUmVmIHsgbmV0d29ya1By
b2Nlc3MgfV0gKGF1dG8mJiByZXN1bHQpIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgV1RGOjpzd2l0Y2hPbihyZXN1bHQsCkBAIC0xNTUsNyAr
MTU1LDcgQEAgdm9pZCBQaW5nTG9hZDo6ZGlkUmVjZWl2ZUNoYWxsZW5nZShBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSYmIGNoYWxsZW5nZSwgTmVnb3RpYXQKICAgICAgICAgbV9uZXR3b3JrTG9hZENo
ZWNrZXItPm5ldHdvcmtQcm9jZXNzKCkuYXV0aGVudGljYXRpb25NYW5hZ2VyKCkuZGlkUmVjZWl2
ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKG1fc2Vzc2lvbklELCBtX3BhcmFtZXRlcnMud2ViUGFn
ZVByb3h5SUQsICBtX3BhcmFtZXRlcnMudG9wT3JpZ2luID8gJm1fcGFyYW1ldGVycy50b3BPcmln
aW4tPmRhdGEoKSA6IG51bGxwdHIsIGNoYWxsZW5nZSwgbmVnb3RpYXRlZExlZ2FjeVRMUywgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGF1
dG8gd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyk7CisgICAgV2Vha1B0ciB3ZWFrVGhpcyB7
ICp0aGlzIH07CiAgICAgY29tcGxldGlvbkhhbmRsZXIoQXV0aGVudGljYXRpb25DaGFsbGVuZ2VE
aXNwb3NpdGlvbjo6Q2FuY2VsLCB7IH0pOwogICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgIHJl
dHVybjsKQEAgLTE2NSw3ICsxNjUsNyBAQCB2b2lkIFBpbmdMb2FkOjpkaWRSZWNlaXZlQ2hhbGxl
bmdlKEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiYgY2hhbGxlbmdlLCBOZWdvdGlhdAogdm9pZCBQ
aW5nTG9hZDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlUmVzcG9uc2UmJiByZXNwb25zZSwg
TmVnb3RpYXRlZExlZ2FjeVRMUywgUmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewogICAgIFBJTkdfUkVMRUFTRV9MT0coImRpZFJlY2VpdmVSZXNwb25zZSAt
IGh0dHBTdGF0dXNDb2RlPSVkIiwgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSk7Ci0gICAgYXV0
byB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKTsKKyAgICBXZWFrUHRyIHdlYWtUaGlzIHsg
KnRoaXMgfTsKICAgICBjb21wbGV0aW9uSGFuZGxlcihQb2xpY3lBY3Rpb246Oklnbm9yZSk7CiAg
ICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuY3BwCmlu
ZGV4IGM1ZWRkZGYxOGYyZGEyZGY1NmVkOGZkY2Y5N2IyZmNkNTI5NWMwZGUuLmRlZjU5MTA4N2U0
ZjI5NDJhMTIxNjI3YmY5ZTc4Zjc3M2NkNjUwZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZh
dGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5jcHAKQEAg
LTg0LDcgKzg0LDcgQEAgdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OnN0b3Jl
VW5hdHRyaWJ1dGVkKFByaXZhdGVDbGlja01lYXN1cmVtZW50JiYKICAgICBpZiAobWVhc3VyZW1l
bnQuZXBoZW1lcmFsU291cmNlTm9uY2UoKSkgewogICAgICAgICBhdXRvIG1lYXN1cmVtZW50Q29w
eSA9IG1lYXN1cmVtZW50OwogICAgICAgICAvLyBUaGlzIGlzIGd1YXJhbnRlZWQgdG8gYmUgY2xv
c2UgaW4gdGltZSB0byB0aGUgbmF2aWdhdGlvbmFsIGNsaWNrIHdoaWNoIG1ha2VzIGl0IGxpa2Vs
eSB0byBiZSBwZXJzb25hbGx5IGlkZW50aWZpYWJsZS4KLSAgICAgICAgZ2V0VG9rZW5QdWJsaWNL
ZXkoV1RGTW92ZShtZWFzdXJlbWVudENvcHkpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0
cmlidXRpb25SZXBvcnRFbmRwb2ludDo6U291cmNlLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
UGNtRGF0YUNhcnJpZWQ6OlBlcnNvbmFsbHlJZGVudGlmaWFibGUsIFt3ZWFrVGhpcyA9IG1ha2VX
ZWFrUHRyKCp0aGlzKSwgdGhpc10gKFByaXZhdGVDbGlja01lYXN1cmVtZW50JiYgbWVhc3VyZW1l
bnQsIGNvbnN0IFN0cmluZyYgcHVibGljS2V5QmFzZTY0VVJMKSB7CisgICAgICAgIGdldFRva2Vu
UHVibGljS2V5KFdURk1vdmUobWVhc3VyZW1lbnRDb3B5KSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OkF0dHJpYnV0aW9uUmVwb3J0RW5kcG9pbnQ6OlNvdXJjZSwgUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OlBjbURhdGFDYXJyaWVkOjpQZXJzb25hbGx5SWRlbnRpZmlhYmxlLCBbd2Vha1RoaXMg
PSBXZWFrUHRyIHsgKnRoaXMgfSwgdGhpc10gKFByaXZhdGVDbGlja01lYXN1cmVtZW50JiYgbWVh
c3VyZW1lbnQsIGNvbnN0IFN0cmluZyYgcHVibGljS2V5QmFzZTY0VVJMKSB7CiAgICAgICAgICAg
ICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMTM2LDcgKzEz
Niw3IEBAIHZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpnZXRUb2tlblB1Ymxp
Y0tleShQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmCiAgICAgUkVMRUFTRV9MT0dfSU5GTyhQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCwgIkFib3V0IHRvIGZpcmUgYSB0b2tlbiBwdWJsaWMga2V5IHJl
cXVlc3QuIik7CiAgICAgbV9jbGllbnQtPmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VM
ZXZlbDo6TG9nLCAiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIEFib3V0IHRvIGZpcmUgYSB0
b2tlbiBwdWJsaWMga2V5IHJlcXVlc3QuIl9zKTsKIAotICAgIFBDTTo6TmV0d29ya0xvYWRlcjo6
c3RhcnQoV1RGTW92ZSh0b2tlblB1YmxpY0tleVVSTCksIG51bGxwdHIsIHBjbURhdGFDYXJyaWVk
LCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXMsIGF0dHJpYnV0aW9uID0gV1RG
TW92ZShhdHRyaWJ1dGlvbiksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldIChhdXRvJiBl
cnJvciwgYXV0byYgcmVzcG9uc2UsIGF1dG8mIGpzb25PYmplY3QpIG11dGFibGUgeworICAgIFBD
TTo6TmV0d29ya0xvYWRlcjo6c3RhcnQoV1RGTW92ZSh0b2tlblB1YmxpY0tleVVSTCksIG51bGxw
dHIsIHBjbURhdGFDYXJyaWVkLCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgdGhpcywg
YXR0cmlidXRpb24gPSBXVEZNb3ZlKGF0dHJpYnV0aW9uKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNh
bGxiYWNrKV0gKGF1dG8mIGVycm9yLCBhdXRvJiByZXNwb25zZSwgYXV0byYganNvbk9iamVjdCkg
bXV0YWJsZSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAK
QEAgLTE3OSw3ICsxNzksNyBAQCB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6
Z2V0U2lnbmVkVW5saW5rYWJsZVRva2VuKFByaXZhdGVDbGlja01lYXN1cgogICAgIFJFTEVBU0Vf
TE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICJBYm91dCB0byBmaXJlIGEgdW5saW5r
YWJsZSB0b2tlbiBzaWduaW5nIHJlcXVlc3QuIik7CiAgICAgbV9jbGllbnQtPmJyb2FkY2FzdENv
bnNvbGVNZXNzYWdlKE1lc3NhZ2VMZXZlbDo6TG9nLCAiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1l
bnRdIEFib3V0IHRvIGZpcmUgYSB1bmxpbmthYmxlIHRva2VuIHNpZ25pbmcgcmVxdWVzdC4iX3Mp
OwogCi0gICAgUENNOjpOZXR3b3JrTG9hZGVyOjpzdGFydChXVEZNb3ZlKHRva2VuU2lnbmF0dXJl
VVJMKSwgbWVhc3VyZW1lbnQudG9rZW5TaWduYXR1cmVKU09OKCksIHBjbURhdGFDYXJyaWVkLCBb
d2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXMsIG1lYXN1cmVtZW50ID0gV1RGTW92
ZShtZWFzdXJlbWVudCldIChhdXRvJiBlcnJvciwgYXV0byYgcmVzcG9uc2UsIGF1dG8mIGpzb25P
YmplY3QpIG11dGFibGUgeworICAgIFBDTTo6TmV0d29ya0xvYWRlcjo6c3RhcnQoV1RGTW92ZSh0
b2tlblNpZ25hdHVyZVVSTCksIG1lYXN1cmVtZW50LnRva2VuU2lnbmF0dXJlSlNPTigpLCBwY21E
YXRhQ2FycmllZCwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHRoaXMsIG1lYXN1cmVt
ZW50ID0gV1RGTW92ZShtZWFzdXJlbWVudCldIChhdXRvJiBlcnJvciwgYXV0byYgcmVzcG9uc2Us
IGF1dG8mIGpzb25PYmplY3QpIG11dGFibGUgewogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAg
ICAgICAgICAgcmV0dXJuOwogCkBAIC0yODEsNyArMjgxLDcgQEAgdm9pZCBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE1hbmFnZXI6OmF0dHJpYnV0ZShjb25zdCBTb3VyY2VTaXRlJiBzb3VyY2VTaXRl
LCBjb24KICAgICBpZiAoIWZlYXR1cmVFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAg
IHN0b3JlKCkuYXR0cmlidXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoc291cmNlU2l0ZSwgZGVz
dGluYXRpb25TaXRlLCBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIsIFdURk1vdmUoYXR0cmli
dXRpb25UcmlnZ2VyRGF0YSksIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0g
KGF1dG8gYXR0cmlidXRpb25TZWNvbmRzVW50aWxTZW5kRGF0YSwgYXV0byBkZWJ1Z0luZm8pIHsK
KyAgICBzdG9yZSgpLmF0dHJpYnV0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50KHNvdXJjZVNpdGUs
IGRlc3RpbmF0aW9uU2l0ZSwgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyLCBXVEZNb3ZlKGF0
dHJpYnV0aW9uVHJpZ2dlckRhdGEpLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMg
fV0gKGF1dG8gYXR0cmlidXRpb25TZWNvbmRzVW50aWxTZW5kRGF0YSwgYXV0byBkZWJ1Z0luZm8p
IHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
CkBAIC0zMjYsNyArMzI2LDcgQEAgdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6
OmZpcmVDb252ZXJzaW9uUmVxdWVzdChjb25zdCBQcml2YXRlQ2xpY2tNZWEKIAogICAgIGF1dG8g
YXR0cmlidXRpb25Db3B5ID0gYXR0cmlidXRpb247CiAgICAgLy8gVGhpcyBoYXBwZW5zIG91dCBv
ZiB3ZWJwYWdlIGNvbnRleHQgYW5kIHdpdGggYSBsb25nIGRlbGF5IGFuZCBpcyB0aHVzIHVubGlr
ZWx5IHRvIGJlIHBlcnNvbmFsbHkgaWRlbnRpZmlhYmxlLgotICAgIGdldFRva2VuUHVibGljS2V5
KFdURk1vdmUoYXR0cmlidXRpb25Db3B5KSwgYXR0cmlidXRpb25SZXBvcnRFbmRwb2ludCwgUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlBjbURhdGFDYXJyaWVkOjpOb25QZXJzb25hbGx5SWRlbnRp
ZmlhYmxlLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXMsIGF0dHJpYnV0aW9u
UmVwb3J0RW5kcG9pbnRdIChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmIGF0dHJpYnV0aW9uLCBj
b25zdCBTdHJpbmcmIHB1YmxpY0tleUJhc2U2NFVSTCkgeworICAgIGdldFRva2VuUHVibGljS2V5
KFdURk1vdmUoYXR0cmlidXRpb25Db3B5KSwgYXR0cmlidXRpb25SZXBvcnRFbmRwb2ludCwgUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlBjbURhdGFDYXJyaWVkOjpOb25QZXJzb25hbGx5SWRlbnRp
ZmlhYmxlLCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgdGhpcywgYXR0cmlidXRpb25S
ZXBvcnRFbmRwb2ludF0gKFByaXZhdGVDbGlja01lYXN1cmVtZW50JiYgYXR0cmlidXRpb24sIGNv
bnN0IFN0cmluZyYgcHVibGljS2V5QmFzZTY0VVJMKSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMp
CiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTM2NSw3ICszNjUsNyBAQCB2b2lkIFByaXZhdGVD
bGlja01lYXN1cmVtZW50TWFuYWdlcjo6ZmlyZUNvbnZlcnNpb25SZXF1ZXN0SW1wbChjb25zdCBQ
cml2YXRlQ2xpYwogICAgIFJFTEVBU0VfTE9HX0lORk8oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQs
ICJBYm91dCB0byBmaXJlIGFuIGF0dHJpYnV0aW9uIHJlcXVlc3QuIik7CiAgICAgbV9jbGllbnQt
PmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VMZXZlbDo6TG9nLCAiW1ByaXZhdGUgQ2xp
Y2sgTWVhc3VyZW1lbnRdIEFib3V0IHRvIGZpcmUgYW4gYXR0cmlidXRpb24gcmVxdWVzdC4iX3Mp
OwogCi0gICAgUENNOjpOZXR3b3JrTG9hZGVyOjpzdGFydChXVEZNb3ZlKGF0dHJpYnV0aW9uVVJM
KSwgYXR0cmlidXRpb24uYXR0cmlidXRpb25SZXBvcnRKU09OKCksIHBjbURhdGFDYXJyaWVkLCBb
d2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXNdKGF1dG8mIGVycm9yLCBhdXRvJiBy
ZXNwb25zZSwgYXV0byYpIHsKKyAgICBQQ006Ok5ldHdvcmtMb2FkZXI6OnN0YXJ0KFdURk1vdmUo
YXR0cmlidXRpb25VUkwpLCBhdHRyaWJ1dGlvbi5hdHRyaWJ1dGlvblJlcG9ydEpTT04oKSwgcGNt
RGF0YUNhcnJpZWQsIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB0aGlzXShhdXRvJiBl
cnJvciwgYXV0byYgcmVzcG9uc2UsIGF1dG8mKSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAg
ICAgICAgICAgICByZXR1cm47CiAKQEAgLTM4Nyw3ICszODcsNyBAQCB2b2lkIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlcjo6ZmlyZVBlbmRpbmdBdHRyaWJ1dGlvblJlcXVlc3RzKCkKICAg
ICBpZiAoIWZlYXR1cmVFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHN0b3JlKCku
YWxsQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50KFt0aGlzLCB3ZWFrVGhpcyA9IG1h
a2VXZWFrUHRyKCp0aGlzKV0gKGF1dG8mJiBhdHRyaWJ1dGlvbnMpIHsKKyAgICBzdG9yZSgpLmFs
bEF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChbdGhpcywgd2Vha1RoaXMgPSBXZWFr
UHRyIHsgKnRoaXMgfV0gKGF1dG8mJiBhdHRyaWJ1dGlvbnMpIHsKICAgICAgICAgaWYgKCF3ZWFr
VGhpcykKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgYXV0byBuZXh0VGltZVRvRmlyZSA9
IFNlY29uZHM6OmluZmluaXR5KCk7CkBAIC01NDgsNyArNTQ4LDcgQEAgdm9pZCBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudE1hbmFnZXI6OmRlc3Ryb3lTdG9yZUZvclRlc3RpbmcoQ29tcGxldGlvbkhh
bmRsZXI8dm8KIHsKICAgICBpZiAoIW1fc3RvcmUpCiAgICAgICAgIHJldHVybiBjb21wbGV0aW9u
SGFuZGxlcigpOwotICAgIG1fc3RvcmUtPmNsb3NlKFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0
aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKCkg
bXV0YWJsZSB7CisgICAgbV9zdG9yZS0+Y2xvc2UoW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlz
IH0sIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11
dGFibGUgewogICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAgICAgICAgICB3ZWFrVGhpcy0+bV9z
dG9yZSA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcigpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZp
Y2VXb3JrZXJTb2Z0VXBkYXRlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyU29mdFVwZGF0ZUxvYWRlci5jcHAKaW5kZXgg
YjAxNDU3NWI1MmJlYjEwMjVkMjZlYTg4Yzg2YTBhZDRkZjYzNTY0YS4uOTUyOTg5MDRkYzI3MTgx
NGM2OTZkYjk5NzJjZGVmMDU1NzczOTJlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJTb2Z0VXBkYXRlTG9hZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2Vydmlj
ZVdvcmtlclNvZnRVcGRhdGVMb2FkZXIuY3BwCkBAIC02MCw3ICs2MCw3IEBAIFNlcnZpY2VXb3Jr
ZXJTb2Z0VXBkYXRlTG9hZGVyOjpTZXJ2aWNlV29ya2VyU29mdFVwZGF0ZUxvYWRlcihOZXR3b3Jr
U2Vzc2lvbiYgc2VzCiAgICAgICAgIC8vIFdlIHNldCBjYWNoZSBwb2xpY3kgdG8gZGlzYWJsZSBz
cGVjdWxhdGl2ZSBsb2FkaW5nL2FzeW5jIHJldmFsaWRhdGlvbiBmcm9tIHRoZSBjYWNoZS4KICAg
ICAgICAgcmVxdWVzdC5zZXRDYWNoZVBvbGljeShSZXNvdXJjZVJlcXVlc3RDYWNoZVBvbGljeTo6
UmV0dXJuQ2FjaGVEYXRhRG9udExvYWQpOwogCi0gICAgICAgIHNlc3Npb24uY2FjaGUoKS0+cmV0
cmlldmUocmVxdWVzdCwgTmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEIHsgfSwgTmF2aWdhdGlu
Z1RvQXBwQm91bmREb21haW46Ok5vLCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhp
cyksIHJlcXVlc3QsIHNob3VsZFJlZnJlc2hDYWNoZV0oYXV0byYmIGVudHJ5LCBhdXRvJiYpIG11
dGFibGUgeworICAgICAgICBzZXNzaW9uLmNhY2hlKCktPnJldHJpZXZlKHJlcXVlc3QsIE5ldHdv
cmtDYWNoZTo6R2xvYmFsRnJhbWVJRCB7IH0sIE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluOjpO
bywgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHJlcXVlc3QsIHNob3VsZFJl
ZnJlc2hDYWNoZV0oYXV0byYmIGVudHJ5LCBhdXRvJiYpIG11dGFibGUgewogICAgICAgICAgICAg
aWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICBpZiAo
IW1fc2Vzc2lvbikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9X
ZWJTdG9yYWdlL0xvY2FsU3RvcmFnZURhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvV2ViU3RvcmFnZS9Mb2NhbFN0b3JhZ2VEYXRhYmFzZS5jcHAKaW5kZXggYmMzZTg4
OTk4MTAxMWNhNjZkMzlmZGRhMThmNjkzNDg1MGY0ODY0YS4uM2Q0YTU3MmFmZjcwOWM3NmZkOTlk
NjUxMmExMGVhZDc5MDAxOTE1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9XZWJTdG9yYWdlL0xvY2FsU3RvcmFnZURhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2UuY3BwCkBA
IC0xMTIsNyArMTEyLDcgQEAgdm9pZCBMb2NhbFN0b3JhZ2VEYXRhYmFzZTo6c3RhcnRUcmFuc2Fj
dGlvbklmTmVjZXNzYXJ5KCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV90cmFuc2FjdGlvbi0+
YmVnaW4oKTsKLSAgICBtX3dvcmtRdWV1ZS0+ZGlzcGF0Y2hBZnRlcih0cmFuc2FjdGlvbkR1cmF0
aW9uLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyldIHsKKyAgICBtX3dvcmtRdWV1ZS0+
ZGlzcGF0Y2hBZnRlcih0cmFuc2FjdGlvbkR1cmF0aW9uLCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsg
KnRoaXMgfV0gewogICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAgICAgICAgICB3ZWFrVGhpcy0+
bV90cmFuc2FjdGlvbi0+Y29tbWl0KCk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZE1hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVT
cGVjdWxhdGl2ZUxvYWRNYW5hZ2VyLmNwcAppbmRleCA2Mjc3MzcwZDg1Njg1ZjRjODQwMWIwYjE4
ZWNkZjk4OTM1NDY4NDhhLi44ZTczYjA2ZjRiOGRiZDc5MzVjM2FlMzA4Yzk3MmFiMGMyMzQyZDY1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtD
YWNoZVNwZWN1bGF0aXZlTG9hZE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkTWFuYWdlci5jcHAKQEAg
LTM3MCw3ICszNzAsNyBAQCB2b2lkIFNwZWN1bGF0aXZlTG9hZE1hbmFnZXI6OnJlZ2lzdGVyTG9h
ZChjb25zdCBHbG9iYWxGcmFtZUlEJiBmcmFtZUlELCBjb25zdCBSZQogICAgICAgICBtX3BlbmRp
bmdGcmFtZUxvYWRzLmFkZChmcmFtZUlELCBwZW5kaW5nRnJhbWVMb2FkLmNvcHlSZWYoKSk7CiAK
ICAgICAgICAgLy8gUmV0cmlldmUgdGhlIHN1YnJlc291cmNlcyBlbnRyeSBpZiBpdCBleGlzdHMg
dG8gc3RhcnQgc3BlY3VsYXRpdmUgcmV2YWxpZGF0aW9uIGFuZCB0byB1cGRhdGUgaXQuCi0gICAg
ICAgIHJldHJpZXZlU3VicmVzb3VyY2VzRW50cnkocmVzb3VyY2VLZXksIFt0aGlzLCB3ZWFrVGhp
cyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgZnJhbWVJRCwgcGVuZGluZ0ZyYW1lTG9hZCA9IFdURk1v
dmUocGVuZGluZ0ZyYW1lTG9hZCksIHJlcXVlc3RJc0FwcEluaXRpYXRlZCA9IHJlcXVlc3QuaXNB
cHBJbml0aWF0ZWQoKSwgaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbl0oc3RkOjp1bmlxdWVf
cHRyPFN1YnJlc291cmNlc0VudHJ5PiBlbnRyeSkgeworICAgICAgICByZXRyaWV2ZVN1YnJlc291
cmNlc0VudHJ5KHJlc291cmNlS2V5LCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMg
fSwgZnJhbWVJRCwgcGVuZGluZ0ZyYW1lTG9hZCA9IFdURk1vdmUocGVuZGluZ0ZyYW1lTG9hZCks
IHJlcXVlc3RJc0FwcEluaXRpYXRlZCA9IHJlcXVlc3QuaXNBcHBJbml0aWF0ZWQoKSwgaXNOYXZp
Z2F0aW5nVG9BcHBCb3VuZERvbWFpbl0oc3RkOjp1bmlxdWVfcHRyPFN1YnJlc291cmNlc0VudHJ5
PiBlbnRyeSkgewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgICAgICBy
ZXR1cm47CiAKQEAgLTU2OSw3ICs1NjksNyBAQCB2b2lkIFNwZWN1bGF0aXZlTG9hZE1hbmFnZXI6
OnByZWxvYWRFbnRyeShjb25zdCBLZXkmIGtleSwgY29uc3QgU3VicmVzb3VyY2VJbmZvJgogICAg
ICAgICByZXR1cm47CiAgICAgbV9wZW5kaW5nUHJlbG9hZHMuYWRkKGtleSwgbnVsbHB0cik7CiAg
ICAgCi0gICAgcmV0cmlldmVFbnRyeUZyb21TdG9yYWdlKHN1YnJlc291cmNlSW5mbywgW3RoaXMs
IHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBrZXksIHN1YnJlc291cmNlSW5mbywgZnJh
bWVJRCwgaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbl0oc3RkOjp1bmlxdWVfcHRyPEVudHJ5
PiBlbnRyeSkgeworICAgIHJldHJpZXZlRW50cnlGcm9tU3RvcmFnZShzdWJyZXNvdXJjZUluZm8s
IFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBrZXksIHN1YnJlc291cmNlSW5m
bywgZnJhbWVJRCwgaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbl0oc3RkOjp1bmlxdWVfcHRy
PEVudHJ5PiBlbnRyeSkgewogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0
dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05l
dHdvcmtEYXRhVGFza0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQppbmRleCAxMGIzNTlmZjg2NTkyMWU4ZWRlYjA2Zjk5
NzI1NzkxMGFjOTE4ZDhhLi4xOWQ0ZWI0NWI1MjM4NjE2NTBjNmVkODcwODNkNjk2YjdmNWY3YWRh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtE
YXRhVGFza0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2Ev
TmV0d29ya0RhdGFUYXNrQ29jb2EubW0KQEAgLTU1MCw3ICs1NTAsNyBAQCB2b2lkIE5ldHdvcmtE
YXRhVGFza0NvY29hOjp3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbihXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJgogICAgIHVwZGF0ZVRhc2tXaXRoRmlyc3RQYXJ0eUZvclNhbWVTaXRlQ29va2ll
cyhtX3Rhc2suZ2V0KCksIHJlcXVlc3QpOwogCiAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICBt
X2NsaWVudC0+d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24oV1RGTW92ZShyZWRpcmVjdFJlc3Bv
bnNlKSwgV1RGTW92ZShyZXF1ZXN0KSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlciksIHRoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSAoYXV0
byYmIHJlcXVlc3QpIG11dGFibGUgeworICAgICAgICBtX2NsaWVudC0+d2lsbFBlcmZvcm1IVFRQ
UmVkaXJlY3Rpb24oV1RGTW92ZShyZWRpcmVjdFJlc3BvbnNlKSwgV1RGTW92ZShyZXF1ZXN0KSwg
W2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHRoaXMsIHdl
YWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dIChhdXRvJiYgcmVxdWVzdCkgbXV0YWJsZSB7CiAg
ICAgICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICFtX3Nlc3Npb24pCiAgICAgICAgICAgICAgICAg
cmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CiAgICAgICAgICAgICBpZiAoIXJlcXVlc3Qu
aXNOdWxsKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvaW9z
L05ldHdvcmtQcm9jZXNzSU9TLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9pb3Mv
TmV0d29ya1Byb2Nlc3NJT1MubW0KaW5kZXggOGYxY2ZkZmU1NzFkNzQ5YTE5Nzg0MGZhOWIwNTAw
MjI1MjIzYmIyNy4uZjhkY2YxNTFjYzg4YzAzOTJjOGYzY2RiZTI0NTNiNTI4N2UwM2E0MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9pb3MvTmV0d29ya1Byb2Nlc3NJ
T1MubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9pb3MvTmV0d29ya1Byb2Nl
c3NJT1MubW0KQEAgLTEwOCw3ICsxMDgsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRJc0hv
bGRpbmdMb2NrZWRGaWxlcyhib29sIGlzSG9sZGluZ0xvY2tlZEZpbGVzKQogICAgIC8vIFdlIHN5
bmNocm9ub3VzbHkgdGFrZSBhIHByb2Nlc3MgYXNzZXJ0aW9uIHdoZW4gYmVnaW5uaW5nIGEgU1FM
aXRlIHRyYW5zYWN0aW9uIHNvIHRoYXQgd2UgZG9uJ3QgZ2V0IHN1c3BlbmRlZAogICAgIC8vIHdo
aWxlIGhvbGRpbmcgYSBsb2NrZWQgZmlsZS4gV2Ugd291bGQgZ2V0IGtpbGxlZCBpZiBzdXNwZW5k
ZWQgd2hpbGUgaG9sZGluZyBsb2NrZWQgZmlsZXMuCiAgICAgbV9ob2xkaW5nTG9ja2VkRmlsZUFz
c2VydGlvbiA9IFByb2Nlc3NBc3NlcnRpb246OmNyZWF0ZShnZXRDdXJyZW50UHJvY2Vzc0lEKCks
ICJOZXR3b3JrIFByb2Nlc3MgaXMgaG9sZGluZyBsb2NrZWQgZmlsZXMiX3MsIFByb2Nlc3NBc3Nl
cnRpb25UeXBlOjpGaW5pc2hUYXNrSW50ZXJydXB0YWJsZSwgUHJvY2Vzc0Fzc2VydGlvbjo6TW9k
ZTo6U3luYyk7Ci0gICAgbV9ob2xkaW5nTG9ja2VkRmlsZUFzc2VydGlvbi0+c2V0UHJlcGFyZUZv
ckludmFsaWRhdGlvbkhhbmRsZXIoW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMp
XSgpIG11dGFibGUgeworICAgIG1faG9sZGluZ0xvY2tlZEZpbGVBc3NlcnRpb24tPnNldFByZXBh
cmVGb3JJbnZhbGlkYXRpb25IYW5kbGVyKFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhp
cyB9XSgpIG11dGFibGUgewogICAgICAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKICAgICAg
ICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5
LmNwcAppbmRleCBjMWVjODM2YTg2NTg4NzRhNGM0YmMzZDI5NzM5NjM4MjBjYzY4YjZkLi40NWI5
YjVhMzNkNDFmZjgzOTZiZjAxMWEzYmUwOWU0ZjM0NjNmMmFhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJv
eHkuY3BwCkBAIC05Nyw3ICs5Nyw3IEBAIHZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6
OnNob3dQYXltZW50VUkoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgZGVzdGluYXRpCiAgICAgZm9y
IChjb25zdCBhdXRvJiBsaW5rSWNvblVSTFN0cmluZyA6IGxpbmtJY29uVVJMU3RyaW5ncykKICAg
ICAgICAgbGlua0ljb25VUkxzLmFwcGVuZChVUkwoVVJMKCksIGxpbmtJY29uVVJMU3RyaW5nKSk7
CiAKLSAgICBwbGF0Zm9ybVNob3dQYXltZW50VUkod2ViUGFnZVByb3h5SUQsIG9yaWdpbmF0aW5n
VVJMLCBsaW5rSWNvblVSTHMsIHBheW1lbnRSZXF1ZXN0LCBbdGhpcywgd2Vha1RoaXMgPSBtYWtl
V2Vha1B0cigqdGhpcyldKGJvb2wgcmVzdWx0KSB7CisgICAgcGxhdGZvcm1TaG93UGF5bWVudFVJ
KHdlYlBhZ2VQcm94eUlELCBvcmlnaW5hdGluZ1VSTCwgbGlua0ljb25VUkxzLCBwYXltZW50UmVx
dWVzdCwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dKGJvb2wgcmVzdWx0KSB7
CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L2lvcy9XZWJQYXltZW50Q29vcmRpbmF0
b3JQcm94eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L2lvcy9XZWJQYXlt
ZW50Q29vcmRpbmF0b3JQcm94eUlPUy5tbQppbmRleCA5MmY5OWI5MWRmYmQ2Y2Y4NzZlYzM4YmRh
ODFhOTQ0NGIwNmVjNTE0Li4wNDg0OWY3M2Q2YjM5MzM2OTU1ZTBmMTc2MzdlMDE0MTNjZDE2ZDI0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9pb3MvV2ViUGF5bWVu
dENvb3JkaW5hdG9yUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQ
YXkvaW9zL1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5SU9TLm1tCkBAIC01Niw3ICs1Niw3IEBA
IHZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OnBsYXRmb3JtU2hvd1BheW1lbnRVSShX
ZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlCiAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxl
cihmYWxzZSk7CiAKICNpZiBFTkFCTEUoQVBQTEVfUEFZX1JFTU9URV9VSV9VU0VTX1NDRU5FKQot
ICAgIG1fY2xpZW50LmdldFdpbmRvd1NjZW5lSWRlbnRpZmllckZvclBheW1lbnRQcmVzZW50YXRp
b24od2ViUGFnZVByb3h5SUQsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgY29tcGxl
dGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oY29uc3QgU3RyaW5nJiBz
Y2VuZUlEKSBtdXRhYmxlIHsKKyAgICBtX2NsaWVudC5nZXRXaW5kb3dTY2VuZUlkZW50aWZpZXJG
b3JQYXltZW50UHJlc2VudGF0aW9uKHdlYlBhZ2VQcm94eUlELCBbd2Vha1RoaXMgPSBXZWFrUHRy
IHsgKnRoaXMgfSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KV0oY29uc3QgU3RyaW5nJiBzY2VuZUlEKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCF3ZWFrVGhp
cykgewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwogICAgICAgICAgICAg
cmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvbWFjL1dl
YlBheW1lbnRDb29yZGluYXRvclByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXBw
bGVQYXkvbWFjL1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5TWFjLm1tCmluZGV4IDNjZDZkYWU0
MjI5MDc4MzNkN2VhNWFhOWJmYWRiZmM4OTM4YTY4YTIuLmEyMzdkOGYzNWE1YjkxOGU5NzgwMzBh
NDMwY2M1NzU1ZmU5NDQxMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxl
UGF5L21hYy9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9BcHBsZVBheS9tYWMvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlNYWMubW0K
QEAgLTU1LDcgKzU1LDcgQEAgdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6cGxhdGZv
cm1TaG93UGF5bWVudFVJKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIGMKICAgICBhdXRvIHBheW1l
bnRSZXF1ZXN0ID0gcGxhdGZvcm1QYXltZW50UmVxdWVzdChvcmlnaW5hdGluZ1VSTCwgbGlua0lj
b25VUkxTdHJpbmdzLCByZXF1ZXN0KTsKIAogICAgIGF1dG8gc2hvd1BheW1lbnRVSVJlcXVlc3RT
ZWVkID0gbV9zaG93UGF5bWVudFVJUmVxdWVzdFNlZWQ7Ci0gICAgYXV0byB3ZWFrVGhpcyA9IG1h
a2VXZWFrUHRyKCp0aGlzKTsKKyAgICBXZWFrUHRyIHdlYWtUaGlzIHsgKnRoaXMgfTsKICAgICBb
UEFMOjpnZXRQS1BheW1lbnRBdXRob3JpemF0aW9uVmlld0NvbnRyb2xsZXJDbGFzcygpIHJlcXVl
c3RWaWV3Q29udHJvbGxlcldpdGhQYXltZW50UmVxdWVzdDpwYXltZW50UmVxdWVzdC5nZXQoKSBj
b21wbGV0aW9uOm1ha2VCbG9ja1B0cihbcGF5bWVudFJlcXVlc3QsIHNob3dQYXltZW50VUlSZXF1
ZXN0U2VlZCwgd2Vha1RoaXMsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcildKFBLUGF5bWVudEF1dGhvcml6YXRpb25WaWV3Q29udHJvbGxlciAqdmlld0NvbnRy
b2xsZXIsIE5TRXJyb3IgKmVycm9yKSBtdXRhYmxlIHsKICAgICAgICAgYXV0byBwYXltZW50Q29v
cmRpbmF0b3JQcm94eSA9IHdlYWtUaGlzLmdldCgpOwogICAgICAgICBpZiAoIXBheW1lbnRDb29y
ZGluYXRvclByb3h5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGlj
YXRpb24vY29jb2EvQXV0aGVudGljYXRpb25NYW5hZ2VyQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9jb2NvYS9BdXRoZW50aWNhdGlvbk1hbmFnZXJDb2NvYS5t
bQppbmRleCAyM2I3ZTgxMDU4MDA3OThkMDVmODMzNzQ0N2E0NGZiNGRiYWFjNTcwLi4wOWRmZjQy
MjQ4NGM2NDUyYmI4NTJhOTA2NTMzMWQwM2Q0MTg5MDU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9jb2NvYS9BdXRoZW50aWNhdGlvbk1hbmFnZXJDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9jb2NvYS9BdXRo
ZW50aWNhdGlvbk1hbmFnZXJDb2NvYS5tbQpAQCAtNDYsNyArNDYsNyBAQCB2b2lkIEF1dGhlbnRp
Y2F0aW9uTWFuYWdlcjo6aW5pdGlhbGl6ZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uKiBjb25u
ZWN0aW9uKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0byB3ZWFrVGhpcyA9IG1h
a2VXZWFrUHRyKCp0aGlzKTsKKyAgICBXZWFrUHRyIHdlYWtUaGlzIHsgKnRoaXMgfTsKICAgICAv
LyBUaGUgZm9sbG93aW5nIHhwYyBldmVudCBoYW5kbGVyIG92ZXJ3cml0ZXMgdGhlIGJvb3N0cmFw
IGV2ZW50IGhhbmRsZXIgYW5kIGlzIG9ubHkgdXNlZAogICAgIC8vIHRvIGNhcHR1cmUgY2xpZW50
IGNlcnRpZmljYXRlIGNyZWRlbnRpYWwuCiAgICAgeHBjX2Nvbm5lY3Rpb25fc2V0X2V2ZW50X2hh
bmRsZXIoY29ubmVjdGlvbi0+eHBjQ29ubmVjdGlvbigpLCBeKHhwY19vYmplY3RfdCBldmVudCkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViU1FMaXRlRGF0YWJhc2VUcmFj
a2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlNRTGl0ZURhdGFiYXNlVHJhY2tlci5j
cHAKaW5kZXggNDYwMTMzNGIzMzU3YzAwM2QxZWU3ZmFjODg2OGI2NmI5NmNlNTAxOS4uZmFjMGM4
YjM2ODU0MjQyMjI5OWY0YjM2ZjUwNWJiNWNmNWQzODQyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuY3BwCkBAIC03MCw3ICs3MCw3IEBA
IHZvaWQgV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyOjp3aWxsQmVnaW5GaXJzdFRyYW5zYWN0aW9u
KCkKIHZvaWQgV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyOjpkaWRGaW5pc2hMYXN0VHJhbnNhY3Rp
b24oKQogewogICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKLSAgICBSdW5Mb29wOjptYWlu
KCkuZGlzcGF0Y2hBZnRlcigxX3MsIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlz
KSwgaHlzdGVyZXJpc0lEID0gKyttX2N1cnJlbnRIeXN0ZXJlcmlzSURdIHsKKyAgICBSdW5Mb29w
OjptYWluKCkuZGlzcGF0Y2hBZnRlcigxX3MsIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAq
dGhpcyB9LCBoeXN0ZXJlcmlzSUQgPSArK21fY3VycmVudEh5c3RlcmVyaXNJRF0gewogICAgICAg
ICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BcHBsaWNhdGlvblN0YXRlVHJhY2tlci5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FwcGxpY2F0aW9uU3RhdGVUcmFja2VyLm1tCmluZGV4IGFjMmI2ZjNk
OTk4NDM2MjFjMTUzM2Q2NjAxZDE2Y2NjYzdiYTlkNzQuLjYyMGJjYTM4NzdmZThhNWE3NGJmNjU4
ZTE2ZjJhZTA1N2U5OTY1ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Fw
cGxpY2F0aW9uU3RhdGVUcmFja2VyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Fw
cGxpY2F0aW9uU3RhdGVUcmFja2VyLm1tCkBAIC04Myw3ICs4Myw3IEBAIEFwcGxpY2F0aW9uU3Rh
dGVUcmFja2VyOjpBcHBsaWNhdGlvblN0YXRlVHJhY2tlcihVSVZpZXcgKnZpZXcsIFNFTCBkaWRF
bnRlckJhY2tnCiAgICAgTlNOb3RpZmljYXRpb25DZW50ZXIgKm5vdGlmaWNhdGlvbkNlbnRlciA9
IFtOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXTsKICAgICBVSUFwcGxpY2F0aW9u
ICphcHBsaWNhdGlvbiA9IFtVSUFwcGxpY2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9uXTsKIAotICAg
IGF1dG8gd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyk7CisgICAgV2Vha1B0ciB3ZWFrVGhp
cyB7ICp0aGlzIH07CiAKICAgICBtX2RpZEZpbmlzaFNuYXBzaG90dGluZ0FmdGVyRW50ZXJpbmdC
YWNrZ3JvdW5kT2JzZXJ2ZXIgPSBbbm90aWZpY2F0aW9uQ2VudGVyIGFkZE9ic2VydmVyRm9yTmFt
ZTpAIl9VSUFwcGxpY2F0aW9uRGlkRmluaXNoU3VzcGVuc2lvblNuYXBzaG90Tm90aWZpY2F0aW9u
IiBvYmplY3Q6YXBwbGljYXRpb24gcXVldWU6bmlsIHVzaW5nQmxvY2s6W3dlYWtUaGlzXShOU05v
dGlmaWNhdGlvbiAqKSB7CiAgICAgICAgIGF1dG8gYXBwbGljYXRpb25TdGF0ZVRyYWNrZXIgPSB3
ZWFrVGhpcy5nZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1eGls
aWFyeVByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXhpbGlhcnlQ
cm9jZXNzUHJveHkuY3BwCmluZGV4IGE4NTIzZTFmN2ZiNTc2NGQ1NmEyMzAzOGYwY2I5ZDQxYjM4
ZmM5NWYuLjg1YTgyY2JiNmYzYmQ4MjkzZGM2YzU5YTY2YjFkZTg5ODk0ZDliM2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1eGlsaWFyeVByb2Nlc3NQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LmNwcApAQCAt
MzkzLDcgKzM5Myw3IEBAIHZvaWQgQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5OjpkaWRCZWNvbWVVbnJl
c3BvbnNpdmUoKQogdm9pZCBBdXhpbGlhcnlQcm9jZXNzUHJveHk6OmNoZWNrRm9yUmVzcG9uc2l2
ZW5lc3MoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIHJlc3BvbnNpdmVuZXNzSGFuZGxlciwg
VXNlTGF6eVN0b3AgdXNlTGF6eVN0b3ApCiB7CiAgICAgc3RhcnRSZXNwb25zaXZlbmVzc1RpbWVy
KHVzZUxhenlTdG9wKTsKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OkF1eGlsaWFy
eVByb2Nlc3M6Ok1haW5UaHJlYWRQaW5nKCksIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlz
KSwgcmVzcG9uc2l2ZW5lc3NIYW5kbGVyID0gV1RGTW92ZShyZXNwb25zaXZlbmVzc0hhbmRsZXIp
XSgpIG11dGFibGUgeworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6QXV4aWxpYXJ5
UHJvY2Vzczo6TWFpblRocmVhZFBpbmcoKSwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0s
IHJlc3BvbnNpdmVuZXNzSGFuZGxlciA9IFdURk1vdmUocmVzcG9uc2l2ZW5lc3NIYW5kbGVyKV0o
KSBtdXRhYmxlIHsKICAgICAgICAgLy8gU2NoZWR1bGUgYW4gYXN5bmNocm9ub3VzIHRhc2sgYmVj
YXVzZSBvdXIgY29tcGxldGlvbiBoYW5kbGVyIG1heSBoYXZlIGJlZW4gY2FsbGVkIGFzIGEgcmVz
dWx0IG9mIHRoZSBBdXhpbGlhcnlQcm9jZXNzUHJveHkKICAgICAgICAgLy8gYmVpbmcgaW4gdGhl
IG1pZGRsZSBvZiBkZXN0cnVjdGlvbi4KICAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNo
KFt3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCByZXNwb25zaXZlbmVzc0hhbmRsZXIgPSBX
VEZNb3ZlKHJlc3BvbnNpdmVuZXNzSGFuZGxlcildKCkgbXV0YWJsZSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Eb3dubG9hZFByb3h5TWFwQ29jb2EubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Eb3dubG9hZFByb3h5TWFwQ29jb2EubW0KaW5k
ZXggOTkxODYxZDdmNTE0Zjc5NjQ2YTg0ZGFhNTczZDViZjY2NjNlNTY0MC4uYjNkOWRlZjk2ODNl
YTJkMjk2ZGUxMTlhYjM3YWRkNzIxMGYwYWUwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvRG93bmxvYWRQcm94eU1hcENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL0Rvd25sb2FkUHJveHlNYXBDb2NvYS5tbQpAQCAtMzcsMTIgKzM3
LDEyIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogdm9pZCBEb3dubG9hZFByb3h5TWFwOjpwbGF0Zm9y
bUNyZWF0ZSgpCiB7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBtX2JhY2tncm91bmRP
YnNlcnZlciA9IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2
ZXJGb3JOYW1lOlVJQXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmROb3RpZmljYXRpb24gb2Jq
ZWN0OltVSUFwcGxpY2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9uXSBxdWV1ZTpuaWwgdXNpbmdCbG9j
azptYWtlQmxvY2tQdHIoW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXShOU05vdGlmaWNh
dGlvbiAqKSB7CisgICAgbV9iYWNrZ3JvdW5kT2JzZXJ2ZXIgPSBbW05TTm90aWZpY2F0aW9uQ2Vu
dGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyRm9yTmFtZTpVSUFwcGxpY2F0aW9uRGlkRW50
ZXJCYWNrZ3JvdW5kTm90aWZpY2F0aW9uIG9iamVjdDpbVUlBcHBsaWNhdGlvbiBzaGFyZWRBcHBs
aWNhdGlvbl0gcXVldWU6bmlsIHVzaW5nQmxvY2s6bWFrZUJsb2NrUHRyKFt3ZWFrVGhpcyA9IFdl
YWtQdHIgeyAqdGhpcyB9XShOU05vdGlmaWNhdGlvbiAqKSB7CiAgICAgICAgIGlmICghd2Vha1Ro
aXMpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIHdlYWtUaGlzLT5hcHBsaWNhdGlvbkRp
ZEVudGVyQmFja2dyb3VuZCgpOwogICAgIH0pLmdldCgpXTsKLSAgICBtX2ZvcmVncm91bmRPYnNl
cnZlciA9IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXJG
b3JOYW1lOlVJQXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kTm90aWZpY2F0aW9uIG9iamVj
dDpbVUlBcHBsaWNhdGlvbiBzaGFyZWRBcHBsaWNhdGlvbl0gcXVldWU6bmlsIHVzaW5nQmxvY2s6
bWFrZUJsb2NrUHRyKFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0oTlNOb3RpZmljYXRp
b24gKikgeworICAgIG1fZm9yZWdyb3VuZE9ic2VydmVyID0gW1tOU05vdGlmaWNhdGlvbkNlbnRl
ciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlckZvck5hbWU6VUlBcHBsaWNhdGlvbldpbGxFbnRl
ckZvcmVncm91bmROb3RpZmljYXRpb24gb2JqZWN0OltVSUFwcGxpY2F0aW9uIHNoYXJlZEFwcGxp
Y2F0aW9uXSBxdWV1ZTpuaWwgdXNpbmdCbG9jazptYWtlQmxvY2tQdHIoW3dlYWtUaGlzID0gV2Vh
a1B0ciB7ICp0aGlzIH1dKE5TTm90aWZpY2F0aW9uICopIHsKICAgICAgICAgaWYgKCF3ZWFrVGhp
cykKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgd2Vha1RoaXMtPmFwcGxpY2F0aW9uV2ls
bEVudGVyRm9yZWdyb3VuZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvTW9kZWxFbGVtZW50Q29udHJvbGxlckNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvTW9kZWxFbGVtZW50Q29udHJvbGxlckNvY29hLm1tCmluZGV4IGMwMDI4Yzk0
YzYzNTRmNDkwNDMxOWM1ZjE5Y2MxMDMwNWNhY2RlMDEuLmE2ZmMzZTZiZDEwNTdlODZlYzBhZDFh
N2ExYjlhMzAwMDU4YWQ5OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL01vZGVsRWxlbWVudENvbnRyb2xsZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9Nb2RlbEVsZW1lbnRDb250cm9sbGVyQ29jb2EubW0KQEAgLTE0MCw3ICsx
NDAsNyBAQCB2b2lkIE1vZGVsRWxlbWVudENvbnRyb2xsZXI6Om1vZGVsRWxlbWVudERpZENyZWF0
ZVByZXZpZXcoY29uc3QgV2ViQ29yZTo6RWxlbWVudAogICAgICAgICBpdGVyYXRvci0+dmFsdWUg
PSBwcmV2aWV3OwogCiAgICAgUkVMRUFTRV9BU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKLSAgICBh
dXRvIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpOworICAgIFdlYWtQdHIgd2Vha1RoaXMg
eyAqdGhpcyB9OwogICAgIGF1dG8gZWxlbWVudENvbnRleHRDb3B5ID0gY29udGV4dDsKICAgICBh
dXRvIHV1aWRDb3B5ID0gdXVpZDsKICAgICBOU1VSTCAqdXJsID0gW05TVVJMIGZpbGVVUkxXaXRo
UGF0aDpmaWxlVVJMLmZpbGVTeXN0ZW1QYXRoKCldOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvU09BdXRob3JpemF0aW9uL1NPQXV0aG9yaXphdGlvblNlc3Npb24u
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9TT0F1dGhvcml6YXRpb24vU09BdXRo
b3JpemF0aW9uU2Vzc2lvbi5tbQppbmRleCAyMjAwZjI2YTAyNTk1ZTBlYjljMzhmOWU0YjU3ZDNj
MWYxMWM2OWZkLi5iOWVmMGJjZWVkNTI3NjQ5YTQzZWRmYTgwOWIzNjJjZDhjMjU3NzdmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9TT0F1dGhvcml6YXRpb24vU09B
dXRob3JpemF0aW9uU2Vzc2lvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9TT0F1dGhvcml6YXRpb24vU09BdXRob3JpemF0aW9uU2Vzc2lvbi5tbQpAQCAtMTcxLDcgKzE3
MSw3IEBAIHZvaWQgU09BdXRob3JpemF0aW9uU2Vzc2lvbjo6c3RhcnQoKQogICAgIEFTU0VSVCgo
bV9zdGF0ZSA9PSBTdGF0ZTo6SWRsZSB8fCBtX3N0YXRlID09IFN0YXRlOjpXYWl0aW5nKSAmJiBt
X25hdmlnYXRpb25BY3Rpb24pOwogICAgIG1fc3RhdGUgPSBTdGF0ZTo6QWN0aXZlOwogICAgIEFV
VEhPUklaQVRJT05TRVNTSU9OX1JFTEVBU0VfTE9HKCJzdGFydDogTW92aW5nIG1fc3RhdGUgdG8g
QWN0aXZlLiIpOwotICAgIFttX3NvQXV0aG9yaXphdGlvbiBnZXRBdXRob3JpemF0aW9uSGludHNX
aXRoVVJMOm1fbmF2aWdhdGlvbkFjdGlvbi0+cmVxdWVzdCgpLnVybCgpIHJlc3BvbnNlQ29kZTow
IGNvbXBsZXRpb246bWFrZUJsb2NrUHRyKFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0
aGlzKV0gKFNPQXV0aG9yaXphdGlvbkhpbnRzICphdXRob3JpemF0aW9uSGludHMsIE5TRXJyb3Ig
KmVycm9yKSB7CisgICAgW21fc29BdXRob3JpemF0aW9uIGdldEF1dGhvcml6YXRpb25IaW50c1dp
dGhVUkw6bV9uYXZpZ2F0aW9uQWN0aW9uLT5yZXF1ZXN0KCkudXJsKCkgcmVzcG9uc2VDb2RlOjAg
Y29tcGxldGlvbjptYWtlQmxvY2tQdHIoW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlz
IH1dIChTT0F1dGhvcml6YXRpb25IaW50cyAqYXV0aG9yaXphdGlvbkhpbnRzLCBOU0Vycm9yICpl
cnJvcikgewogICAgICAgICBBVVRIT1JJWkFUSU9OU0VTU0lPTl9SRUxFQVNFX0xPRygic3RhcnQ6
IFJlY2VpdmUgU09BdXRob3JpemF0aW9uSGludHMgKGVycm9yPSVsZCkiLCBlcnJvciA/IGVycm9y
LmNvZGUgOiAwKTsKIAogICAgICAgICBpZiAoIXdlYWtUaGlzKSB7CkBAIC0yMDAsNyArMjAwLDcg
QEAgdm9pZCBTT0F1dGhvcml6YXRpb25TZXNzaW9uOjpjb250aW51ZVN0YXJ0QWZ0ZXJHZXRBdXRo
b3JpemF0aW9uSGludHMoY29uc3QgU3RyaW4KICAgICB9CiAKICAgICBBVVRIT1JJWkFUSU9OU0VT
U0lPTl9SRUxFQVNFX0xPRygiY29udGludWVTdGFydEFmdGVyR2V0QXV0aG9yaXphdGlvbkhpbnRz
OiBDaGVja2luZyBwYWdlIGZvciBwb2xpY3kgY2hvaWNlLiIpOwotICAgIG1fcGFnZS0+ZGVjaWRl
UG9saWN5Rm9yU09BdXRob3JpemF0aW9uTG9hZChoaW50cywgW3RoaXMsIHdlYWtUaGlzID0gbWFr
ZVdlYWtQdHIoKnRoaXMpXSAoU09BdXRob3JpemF0aW9uTG9hZFBvbGljeSBwb2xpY3kpIHsKKyAg
ICBtX3BhZ2UtPmRlY2lkZVBvbGljeUZvclNPQXV0aG9yaXphdGlvbkxvYWQoaGludHMsIFt0aGlz
LCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XSAoU09BdXRob3JpemF0aW9uTG9hZFBvbGlj
eSBwb2xpY3kpIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgY29udGludWVTdGFydEFmdGVyRGVjaWRlUG9saWN5KHBvbGljeSk7CkBAIC0zMTQs
NyArMzE0LDcgQEAgdm9pZCBTT0F1dGhvcml6YXRpb25TZXNzaW9uOjpjb21wbGV0ZShOU0hUVFBV
UkxSZXNwb25zZSAqaHR0cFJlc3BvbnNlLCBOU0RhdGEgKmQKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIG1fcGFnZS0+d2Vic2l0ZURhdGFTdG9yZSgpLmNvb2tpZVN0b3JlKCkuc2V0Q29v
a2llcyhXVEZNb3ZlKGNvb2tpZXMpLCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhp
cyksIHJlc3BvbnNlID0gV1RGTW92ZShyZXNwb25zZSksIGRhdGEgPSBhZG9wdE5TKFtbTlNEYXRh
IGFsbG9jXSBpbml0V2l0aERhdGE6ZGF0YV0pXSAoKSBtdXRhYmxlIHsKKyAgICBtX3BhZ2UtPndl
YnNpdGVEYXRhU3RvcmUoKS5jb29raWVTdG9yZSgpLnNldENvb2tpZXMoV1RGTW92ZShjb29raWVz
KSwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHJlc3BvbnNlID0gV1RGTW92
ZShyZXNwb25zZSksIGRhdGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aERhdGE6
ZGF0YV0pXSAoKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAg
IHJldHVybjsKIApAQCAtMzQ4LDcgKzM0OCw3IEBAIHZvaWQgU09BdXRob3JpemF0aW9uU2Vzc2lv
bjo6cHJlc2VudFZpZXdDb250cm9sbGVyKFNPQXV0aG9yaXphdGlvblZpZXdDb250cm9sbGVyCiAK
ICAgICBtX3NoZWV0V2luZG93ID0gW05TV2luZG93IHdpbmRvd1dpdGhDb250ZW50Vmlld0NvbnRy
b2xsZXI6bV92aWV3Q29udHJvbGxlci5nZXQoKV07CiAKLSAgICBtX3NoZWV0V2luZG93V2lsbENs
b3NlT2JzZXJ2ZXIgPSBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9i
c2VydmVyRm9yTmFtZTpOU1dpbmRvd1dpbGxDbG9zZU5vdGlmaWNhdGlvbiBvYmplY3Q6bV9zaGVl
dFdpbmRvdy5nZXQoKSBxdWV1ZTpuaWwgdXNpbmdCbG9jazpbd2Vha1RoaXMgPSBtYWtlV2Vha1B0
cigqdGhpcyldIChOU05vdGlmaWNhdGlvbiAqKSB7CisgICAgbV9zaGVldFdpbmRvd1dpbGxDbG9z
ZU9ic2VydmVyID0gW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNl
cnZlckZvck5hbWU6TlNXaW5kb3dXaWxsQ2xvc2VOb3RpZmljYXRpb24gb2JqZWN0Om1fc2hlZXRX
aW5kb3cuZ2V0KCkgcXVldWU6bmlsIHVzaW5nQmxvY2s6W3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0
aGlzIH1dIChOU05vdGlmaWNhdGlvbiAqKSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIFJFTEVBU0VfTE9HKEFwcFNTTywgInByZXNlbnRWaWV3
Q29udHJvbGxlcjogUmVjZWl2ZWQgTlNXaW5kb3dXaWxsQ2xvc2VOb3RpZmljYXRpb24uIERpc21p
c3NpbmcgdGhlIHZpZXcgY29udHJvbGxlci4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KaW5kZXggYzcyN2MyMGRhYzY2NGQ4ZDUw
NTY3NWFiNmZmYjUyNWUzNWY1ZTJiMS4uOTE1YjdmNGM2NDhlMmZlMDE5OGVmZDE1YjU1ZmY0NTEx
ODFhZDZmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFn
ZVByb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFn
ZVByb3h5Q29jb2EubW0KQEAgLTUyOSw3ICs1MjksNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2No
ZWR1bGVBY3Rpdml0eVN0YXRlVXBkYXRlKCkKICAgICAvLyBJZiB0aGVyZSBpcyBubyBhY3RpdmUg
dHJhbnNhY3Rpb24sIGxpa2VseSB0aGVyZSBpcyBubyByb290IGxheWVyIGNoYW5nZSBvciBjaGFu
Z2UgaXMgY29tbWl0dGVkLAogICAgIC8vIHRoZW4gc2NoZWR1bGUgZGlzcGF0Y2ggb24gcnVubG9v
cCBvYnNlcnZlciB0byBjb2xsZWN0IGNoYW5nZXMgaW4gdGhlIHNhbWUgcnVubG9vcCBjeWNsZSBi
ZWZvcmUgZGlzcGF0Y2hpbmcuCiAgICAgaWYgKGhhc0FjdGl2ZUNBVHJhbnNhY3Rpb24pIHsKLSAg
ICAgICAgW0NBVHJhbnNhY3Rpb24gYWRkQ29tbWl0SGFuZGxlcjpbd2Vha1RoaXMgPSBtYWtlV2Vh
a1B0cigqdGhpcyldIHsKKyAgICAgICAgW0NBVHJhbnNhY3Rpb24gYWRkQ29tbWl0SGFuZGxlcjpb
d2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0gewogICAgICAgICAgICAgLy8gV2UgY2FuJ3Qg
Y2FsbCBkaXNwYXRjaEFjdGl2aXR5U3RhdGVDaGFuZ2UgZGlyZWN0bHkgdW5kZXJuZWF0aCB0aGlz
IGNvbW1pdCBoYW5kbGVyLCBiZWNhdXNlIGl0IGhhcyBzaWRlLWVmZmVjdHMKICAgICAgICAgICAg
IC8vIHRoYXQgbWF5IHJlc3VsdCBpbiBvdGhlciBmcmFtZXdvcmtzIHRyeWluZyB0byBpbnN0YWxs
IGNvbW1pdCBoYW5kbGVycyBmb3IgdGhlIHNhbWUgcGhhc2UsIHdoaWNoIGlzIG5vdCBhbGxvd2Vk
LgogICAgICAgICAgICAgLy8gU28sIGRpc3BhdGNoX2FzeW5jIGhlcmU7IHdlIG9ubHkgY2FyZSB0
aGF0IHRoZSBhY3Rpdml0eSBzdGF0ZSBjaGFuZ2UgZG9lc24ndCBhcHBseSB1bnRpbCBhZnRlciB0
aGUgYWN0aXZlIGNvbW1pdCBpcyBjb21wbGV0ZS4KQEAgLTYxNCw3ICs2MTQsNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6c2V0VXBIaWdobGlnaHRzT2JzZXJ2ZXIoKQogICAgIGlmIChtX2FwcEhpZ2hs
aWdodHNPYnNlcnZlcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byB3ZWFrVGhpcyA9IG1h
a2VXZWFrUHRyKCp0aGlzKTsKKyAgICBXZWFrUHRyIHdlYWtUaGlzIHsgKnRoaXMgfTsKICAgICBh
dXRvIHVwZGF0ZUFwcEhpZ2hsaWdodHNWaXNpYmlsaXR5ID0gXihCT09MIGlzVmlzaWJsZSkgewog
ICAgICAgICBlbnN1cmVPbk1haW5SdW5Mb29wKFt3ZWFrVGhpcywgaXNWaXNpYmxlXSB7CiAgICAg
ICAgICAgICBpZiAoIXdlYWtUaGlzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbQppbmRleCBmZGQ5ZmQxNzljZDc0ZTRiNmNm
MWM4ZDhkMWYyN2UxMDk2OTM5OTRmLi43OTJmMDc5YTZkZjU1ZmRlMWY5M2RhMTQ4NDc0M2U0ODU3
NTllMjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9j
ZXNzUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQ
cm9jZXNzUHJveHlDb2NvYS5tbQpAQCAtMjk2LDcgKzI5Niw3IEBAIHZvaWQgV2ViUHJvY2Vzc1By
b3h5OjpzZW5kQXVkaW9Db21wb25lbnRSZWdpc3RyYXRpb25zKCkKICAgICBpZiAoIVBBTDo6aXNB
dWRpb1Rvb2xib3hDb3JlRnJhbWV3b3JrQXZhaWxhYmxlKCkgfHwgIVBBTDo6Y2FuTG9hZF9BdWRp
b1Rvb2xib3hDb3JlX0F1ZGlvQ29tcG9uZW50RmV0Y2hTZXJ2ZXJSZWdpc3RyYXRpb25zKCkpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9nbG9iYWxf
cXVldWUoRElTUEFUQ0hfUVVFVUVfUFJJT1JJVFlfREVGQVVMVCwgMCksIFt3ZWFrVGhpcyA9IG1h
a2VXZWFrUHRyKCp0aGlzKV0gKCkgbXV0YWJsZSB7CisgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0
Y2hfZ2V0X2dsb2JhbF9xdWV1ZShESVNQQVRDSF9RVUVVRV9QUklPUklUWV9ERUZBVUxULCAwKSwg
W3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dICgpIG11dGFibGUgewogICAgICAgICBDRkRh
dGFSZWYgcmVnaXN0cmF0aW9ucyB7IG51bGxwdHIgfTsKIAogICAgICAgICBXZWJDb3JlOjpyZWdp
c3Rlck9wdXNEZWNvZGVySWZOZWVkZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViVmlld0ltcGwubW0KaW5kZXggOGM4YjNiYTMzYTE2MTJkNGFkYTVhZmU0ODZiYzdjNDYy
ZmNjZjM1MC4uNDE5MWVjOGIyMjQ5OWQwODcxYzEzMjM4NTZlODA0ZDJlYzM1ZmI0NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTE3NjEsNyAr
MTc2MSw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNob3dTYWZlQnJvd3NpbmdXYXJuaW5nKGNvbnN0
IFNhZmVCcm93c2luZ1dhcm5pbmcmIHdhcm5pbmcsIENvCiAgICAgaWYgKCFtX3ZpZXcpCiAgICAg
ICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihDb250aW51ZVVuc2FmZUxvYWQ6Olllcyk7CiAK
LSAgICBtX3NhZmVCcm93c2luZ1dhcm5pbmcgPSBhZG9wdE5TKFtbV0tTYWZlQnJvd3NpbmdXYXJu
aW5nIGFsbG9jXSBpbml0V2l0aEZyYW1lOlttX3ZpZXcgYm91bmRzXSBzYWZlQnJvd3NpbmdXYXJu
aW5nOndhcm5pbmcgY29tcGxldGlvbkhhbmRsZXI6W3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRo
aXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoYXV0
byYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgbV9zYWZlQnJvd3NpbmdXYXJuaW5nID0gYWRvcHRO
UyhbW1dLU2FmZUJyb3dzaW5nV2FybmluZyBhbGxvY10gaW5pdFdpdGhGcmFtZTpbbV92aWV3IGJv
dW5kc10gc2FmZUJyb3dzaW5nV2FybmluZzp3YXJuaW5nIGNvbXBsZXRpb25IYW5kbGVyOlt3ZWFr
VGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpXSAoYXV0byYmIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKFdURk1vdmUocmVzdWx0KSk7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAg
ICAgICAgICAgICByZXR1cm47CkBAIC0xOTE3LDcgKzE5MTcsNyBAQCB2b2lkIFdlYlZpZXdJbXBs
Ojp1cGRhdGVXaW5kb3dBbmRWaWV3RnJhbWVzKCkKIAogICAgIG1fZGlkU2NoZWR1bGVXaW5kb3dB
bmRWaWV3RnJhbWVVcGRhdGUgPSB0cnVlOwogCi0gICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNo
KFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0geworICAgIFJ1bkxvb3A6Om1haW4oKS5k
aXNwYXRjaChbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0gewogICAgICAgICBpZiAoIXdl
YWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC0yMDQxLDcgKzIwNDEsNyBAQCB2b2lk
IFdlYlZpZXdJbXBsOjpzY2hlZHVsZVNldFRvcENvbnRlbnRJbnNldERpc3BhdGNoKCkKIAogICAg
IG1fZGlkU2NoZWR1bGVTZXRUb3BDb250ZW50SW5zZXREaXNwYXRjaCA9IHRydWU7CiAKLSAgICBS
dW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSB7
CisgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhp
cyB9XSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIHdlYWtUaGlzLT5kaXNwYXRjaFNldFRvcENvbnRlbnRJbnNldCgpOwpAQCAtMjQ1OSw3ICsy
NDU5LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6dmlld0RpZE1vdmVUb1dpbmRvdygpCiAgICAgICAg
IG1fcGFnZS0+bGF5ZXJIb3N0aW5nTW9kZURpZENoYW5nZSgpOwogCiAgICAgICAgIGlmICghbV9m
bGFnc0NoYW5nZWRFdmVudE1vbml0b3IpIHsKLSAgICAgICAgICAgIGF1dG8gd2Vha1RoaXMgPSBt
YWtlV2Vha1B0cigqdGhpcyk7CisgICAgICAgICAgICBXZWFrUHRyIHdlYWtUaGlzIHsgKnRoaXMg
fTsKICAgICAgICAgICAgIG1fZmxhZ3NDaGFuZ2VkRXZlbnRNb25pdG9yID0gW05TRXZlbnQgYWRk
TG9jYWxNb25pdG9yRm9yRXZlbnRzTWF0Y2hpbmdNYXNrOk5TRXZlbnRNYXNrRmxhZ3NDaGFuZ2Vk
IGhhbmRsZXI6W3dlYWtUaGlzXSAoTlNFdmVudCAqZmxhZ3NDaGFuZ2VkRXZlbnQpIHsKICAgICAg
ICAgICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgICAgIHdlYWtUaGlzLT5w
b3N0RmFrZU1vdXNlTW92ZWRFdmVudEZvckZsYWdzQ2hhbmdlZEV2ZW50KGZsYWdzQ2hhbmdlZEV2
ZW50KTsKQEAgLTI3MDQsNyArMjcwNCw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnByZXBhcmVGb3JN
b3ZlVG9XaW5kb3coTlNXaW5kb3cgKnRhcmdldFdpbmRvdywgV1RGOjpGdW5jdGlvbjx2CiAKICAg
ICBtX3Nob3VsZERlZmVyVmlld0luV2luZG93Q2hhbmdlcyA9IGZhbHNlOwogCi0gICAgYXV0byB3
ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKTsKKyAgICBXZWFrUHRyIHdlYWtUaGlzIHsgKnRo
aXMgfTsKICAgICBtX3BhZ2UtPmluc3RhbGxBY3Rpdml0eVN0YXRlQ2hhbmdlQ29tcGxldGlvbkhh
bmRsZXIoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogCiAgICAgZGlzcGF0Y2hTZXRUb3BD
b250ZW50SW5zZXQoKTsKQEAgLTMzMTIsNyArMzMxMiw3IEBAIGJvb2wgV2ViVmlld0ltcGw6OnZh
bGlkYXRlVXNlckludGVyZmFjZUl0ZW0oaWQgPE5TVmFsaWRhdGVkVXNlckludGVyZmFjZUl0ZW0+
IGl0CiAgICAgICAgIC8vIElmIHdlIGFyZSBub3QgYWxyZWFkeSBhd2FpdGluZyB2YWxpZGF0aW9u
IGZvciB0aGlzIGNvbW1hbmQsIHN0YXJ0IHRoZSBhc3luY2hyb25vdXMgdmFsaWRhdGlvbiBwcm9j
ZXNzLgogICAgICAgICAvLyBGSVhNRTogVGhlb3JldGljYWxseSwgdGhlcmUgaXMgYSByYWNlIGhl
cmU7IHdoZW4gd2UgZ2V0IHRoZSBhbnN3ZXIgaXQgbWlnaHQgYmUgb2xkLCBmcm9tIGEgcHJldmlv
dXMgdGltZQogICAgICAgICAvLyB3ZSBhc2tlZCBmb3IgdGhlIHNhbWUgY29tbWFuZDsgdGhlcmUg
aXMgbm8gZ3VhcmFudGVlIHRoZSBhbnN3ZXIgaXMgc3RpbGwgdmFsaWQuCi0gICAgICAgIG1fcGFn
ZS0+dmFsaWRhdGVDb21tYW5kKGNvbW1hbmROYW1lLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigq
dGhpcyksIGNvbW1hbmROYW1lXShib29sIGlzRW5hYmxlZCwgaW50MzJfdCBzdGF0ZSkgeworICAg
ICAgICBtX3BhZ2UtPnZhbGlkYXRlQ29tbWFuZChjb21tYW5kTmFtZSwgW3dlYWtUaGlzID0gV2Vh
a1B0ciB7ICp0aGlzIH0sIGNvbW1hbmROYW1lXShib29sIGlzRW5hYmxlZCwgaW50MzJfdCBzdGF0
ZSkgewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgICAgICByZXR1cm47
CiAKQEAgLTM1NjMsNyArMzU2Myw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnJlcXVlc3RDYW5kaWRh
dGVzRm9yU2VsZWN0aW9uSWZOZWVkZWQoKQogCiAgICAgTlNSYW5nZSBzZWxlY3RlZFJhbmdlID0g
TlNNYWtlUmFuZ2UocG9zdExheW91dERhdGEuY2FuZGlkYXRlUmVxdWVzdFN0YXJ0UG9zaXRpb24s
IHBvc3RMYXlvdXREYXRhLnNlbGVjdGVkVGV4dExlbmd0aCk7CiAgICAgTlNUZXh0Q2hlY2tpbmdU
eXBlcyBjaGVja2luZ1R5cGVzID0gTlNUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcgfCBOU1RleHRD
aGVja2luZ1R5cGVSZXBsYWNlbWVudCB8IE5TVGV4dENoZWNraW5nVHlwZUNvcnJlY3Rpb247Ci0g
ICAgYXV0byB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKTsKKyAgICBXZWFrUHRyIHdlYWtU
aGlzIHsgKnRoaXMgfTsKICAgICBtX2xhc3RDYW5kaWRhdGVSZXF1ZXN0U2VxdWVuY2VOdW1iZXIg
PSBbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl0gcmVxdWVzdENhbmRpZGF0ZXNG
b3JTZWxlY3RlZFJhbmdlOnNlbGVjdGVkUmFuZ2UgaW5TdHJpbmc6cG9zdExheW91dERhdGEucGFy
YWdyYXBoQ29udGV4dEZvckNhbmRpZGF0ZVJlcXVlc3QgdHlwZXM6Y2hlY2tpbmdUeXBlcyBvcHRp
b25zOm5pbCBpblNwZWxsRG9jdW1lbnRXaXRoVGFnOnNwZWxsQ2hlY2tlckRvY3VtZW50VGFnKCkg
Y29tcGxldGlvbkhhbmRsZXI6W3dlYWtUaGlzXShOU0ludGVnZXIgc2VxdWVuY2VOdW1iZXIsIE5T
QXJyYXk8TlNUZXh0Q2hlY2tpbmdSZXN1bHQgKj4gKmNhbmRpZGF0ZXMpIHsKICAgICAgICAgUnVu
TG9vcDo6bWFpbigpLmRpc3BhdGNoKFt3ZWFrVGhpcywgc2VxdWVuY2VOdW1iZXIsIGNhbmRpZGF0
ZXMgPSByZXRhaW5QdHIoY2FuZGlkYXRlcyldIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMp
CkBAIC01MDc3LDcgKzUwNzcsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjppbnRlcnByZXRLZXlFdmVu
dChOU0V2ZW50ICpldmVudCwgdm9pZCheY29tcGxldGlvbkhhbmRsZXIpKEJPTwogICAgIH0KIAog
ICAgIExPRyhUZXh0SW5wdXQsICItPiBoYW5kbGVFdmVudEJ5SW5wdXRNZXRob2Q6JXAgJUAiLCBl
dmVudCwgZXZlbnQpOwotICAgIFtpbnB1dENvbnRleHQoKSBoYW5kbGVFdmVudEJ5SW5wdXRNZXRo
b2Q6ZXZlbnQgY29tcGxldGlvbkhhbmRsZXI6W3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMp
LCBjYXB0dXJlZEV2ZW50ID0gcmV0YWluUHRyKGV2ZW50KSwgY2FwdHVyZWRCbG9jayA9IG1ha2VC
bG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildKEJPT0wgaGFuZGxlZCkgeworICAgIFtpbnB1dENv
bnRleHQoKSBoYW5kbGVFdmVudEJ5SW5wdXRNZXRob2Q6ZXZlbnQgY29tcGxldGlvbkhhbmRsZXI6
W3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGNhcHR1cmVkRXZlbnQgPSByZXRhaW5QdHIo
ZXZlbnQpLCBjYXB0dXJlZEJsb2NrID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0o
Qk9PTCBoYW5kbGVkKSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpIHsKICAgICAgICAgICAgIGNh
cHR1cmVkQmxvY2soTk8sIHsgfSk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC01MjQ0LDcgKzUy
NDQsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpmaXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZShOU1Jh
bmdlIHJhbmdlLCB2b2lkKF5jb21wbGV0aW9uSGFuZAogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgbV9wYWdlLT5maXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZUFzeW5jKHJhbmdlLCBbd2Vh
a1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2Nr
UHRyKGNvbXBsZXRpb25IYW5kbGVyKV0oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCwgY29u
c3QgRWRpdGluZ1JhbmdlJiBhY3R1YWxSYW5nZSkgeworICAgIG1fcGFnZS0+Zmlyc3RSZWN0Rm9y
Q2hhcmFjdGVyUmFuZ2VBc3luYyhyYW5nZSwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0s
IGNvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0oY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCwgY29uc3QgRWRpdGluZ1JhbmdlJiBhY3R1YWxSYW5n
ZSkgewogICAgICAgICBpZiAoIXdlYWtUaGlzKSB7CiAgICAgICAgICAgICBMT0coVGV4dElucHV0
LCAiICAgIC4uLmZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlIGZhaWxlZCAoV2ViVmlld0ltcGwg
d2FzIGRlc3Ryb3llZCkuIik7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihOU1plcm9S
ZWN0LCBOU01ha2VSYW5nZShOU05vdEZvdW5kLCAwKSk7CkBAIC01NDAyLDcgKzU0MDIsNyBAQCBi
b29sIFdlYlZpZXdJbXBsOjpwZXJmb3JtS2V5RXF1aXZhbGVudChOU0V2ZW50ICpldmVudCkKICAg
ICAvLyB0aGlzIGV2ZW50LiBUaGlzIGxldHMgd2VicGFnZXMgaGF2ZSBhIGNyYWNrIGF0IGludGVy
Y2VwdGluZyBrZXktbW9kaWZpZWQga2V5cHJlc3Nlcy4KICAgICAvLyBGSVhNRTogV2h5IGlzIHRo
ZSBmaXJzdFJlc3BvbmRlciBjaGVjayBuZWVkZWQ/CiAgICAgaWYgKG1fdmlldy5nZXRBdXRvcmVs
ZWFzZWQoKSA9PSBbbV92aWV3IHdpbmRvd10uZmlyc3RSZXNwb25kZXIpIHsKLSAgICAgICAgaW50
ZXJwcmV0S2V5RXZlbnQoZXZlbnQsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgY2Fw
dHVyZWRFdmVudCA9IHJldGFpblB0cihldmVudCldKEJPT0wgaGFuZGxlZEJ5SW5wdXRNZXRob2Qs
IGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+JiBjb21tYW5kcykgeworICAg
ICAgICBpbnRlcnByZXRLZXlFdmVudChldmVudCwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlz
IH0sIGNhcHR1cmVkRXZlbnQgPSByZXRhaW5QdHIoZXZlbnQpXShCT09MIGhhbmRsZWRCeUlucHV0
TWV0aG9kLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYgY29tbWFuZHMp
IHsKICAgICAgICAgICAgIGlmICh3ZWFrVGhpcykKICAgICAgICAgICAgICAgICB3ZWFrVGhpcy0+
bV9wYWdlLT5oYW5kbGVLZXlib2FyZEV2ZW50KE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoY2FwdHVy
ZWRFdmVudC5nZXQoKSwgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGZhbHNlLCBjb21tYW5kcykpOwog
ICAgICAgICB9KTsKQEAgLTU0MjAsNyArNTQyMCw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OmtleVVw
KE5TRXZlbnQgKmV2ZW50KQogICAgIExPRyhUZXh0SW5wdXQsICJrZXlVcDolcCAlQCIsIGV2ZW50
LCBldmVudCk7CiAKICAgICBtX2lzVGV4dEluc2VydGlvblJlcGxhY2luZ1NvZnRTcGFjZSA9IGZh
bHNlOwotICAgIGludGVycHJldEtleUV2ZW50KGV2ZW50LCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0
cigqdGhpcyksIGNhcHR1cmVkRXZlbnQgPSByZXRhaW5QdHIoZXZlbnQpXShCT09MIGhhbmRsZWRC
eUlucHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYgY29t
bWFuZHMpIHsKKyAgICBpbnRlcnByZXRLZXlFdmVudChldmVudCwgW3dlYWtUaGlzID0gV2Vha1B0
ciB7ICp0aGlzIH0sIGNhcHR1cmVkRXZlbnQgPSByZXRhaW5QdHIoZXZlbnQpXShCT09MIGhhbmRs
ZWRCeUlucHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYg
Y29tbWFuZHMpIHsKICAgICAgICAgQVNTRVJUKCFoYW5kbGVkQnlJbnB1dE1ldGhvZCB8fCBjb21t
YW5kcy5pc0VtcHR5KCkpOwogICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAgICAgICAgICB3ZWFr
VGhpcy0+bV9wYWdlLT5oYW5kbGVLZXlib2FyZEV2ZW50KE5hdGl2ZVdlYktleWJvYXJkRXZlbnQo
Y2FwdHVyZWRFdmVudC5nZXQoKSwgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIHdlYWtUaGlzLT5tX2lz
VGV4dEluc2VydGlvblJlcGxhY2luZ1NvZnRTcGFjZSwgY29tbWFuZHMpKTsKQEAgLTU0NDksNyAr
NTQ0OSw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OmtleURvd24oTlNFdmVudCAqZXZlbnQpCiAgICAg
fQogCiAgICAgbV9pc1RleHRJbnNlcnRpb25SZXBsYWNpbmdTb2Z0U3BhY2UgPSBmYWxzZTsKLSAg
ICBpbnRlcnByZXRLZXlFdmVudChldmVudCwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMp
LCBjYXB0dXJlZEV2ZW50ID0gcmV0YWluUHRyKGV2ZW50KV0oQk9PTCBoYW5kbGVkQnlJbnB1dE1l
dGhvZCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4mIGNvbW1hbmRzKSB7
CisgICAgaW50ZXJwcmV0S2V5RXZlbnQoZXZlbnQsIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhp
cyB9LCBjYXB0dXJlZEV2ZW50ID0gcmV0YWluUHRyKGV2ZW50KV0oQk9PTCBoYW5kbGVkQnlJbnB1
dE1ldGhvZCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4mIGNvbW1hbmRz
KSB7CiAgICAgICAgIEFTU0VSVCghaGFuZGxlZEJ5SW5wdXRNZXRob2QgfHwgY29tbWFuZHMuaXNF
bXB0eSgpKTsKICAgICAgICAgaWYgKHdlYWtUaGlzKQogICAgICAgICAgICAgd2Vha1RoaXMtPm1f
cGFnZS0+aGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXlib2FyZEV2ZW50KGNhcHR1cmVk
RXZlbnQuZ2V0KCksIGhhbmRsZWRCeUlucHV0TWV0aG9kLCB3ZWFrVGhpcy0+bV9pc1RleHRJbnNl
cnRpb25SZXBsYWNpbmdTb2Z0U3BhY2UsIGNvbW1hbmRzKSk7CkBAIC01NDY3LDcgKzU0NjcsNyBA
QCB2b2lkIFdlYlZpZXdJbXBsOjpmbGFnc0NoYW5nZWQoTlNFdmVudCAqZXZlbnQpCiAgICAgaWYg
KGV2ZW50S2V5Q29kZUlzWmVyb09yTnVtTG9ja09yRm4oZXZlbnQpKQogICAgICAgICByZXR1cm47
CiAKLSAgICBpbnRlcnByZXRLZXlFdmVudChldmVudCwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIo
KnRoaXMpLCBjYXB0dXJlZEV2ZW50ID0gcmV0YWluUHRyKGV2ZW50KV0oQk9PTCBoYW5kbGVkQnlJ
bnB1dE1ldGhvZCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4mIGNvbW1h
bmRzKSB7CisgICAgaW50ZXJwcmV0S2V5RXZlbnQoZXZlbnQsIFt3ZWFrVGhpcyA9IFdlYWtQdHIg
eyAqdGhpcyB9LCBjYXB0dXJlZEV2ZW50ID0gcmV0YWluUHRyKGV2ZW50KV0oQk9PTCBoYW5kbGVk
QnlJbnB1dE1ldGhvZCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4mIGNv
bW1hbmRzKSB7CiAgICAgICAgIGlmICh3ZWFrVGhpcykKICAgICAgICAgICAgIHdlYWtUaGlzLT5t
X3BhZ2UtPmhhbmRsZUtleWJvYXJkRXZlbnQoTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChjYXB0dXJl
ZEV2ZW50LmdldCgpLCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgZmFsc2UsIGNvbW1hbmRzKSk7CiAg
ICAgfSk7CkBAIC01NTA2LDcgKzU1MDYsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpuYXRpdmVNb3Vz
ZUV2ZW50SGFuZGxlcihOU0V2ZW50ICpldmVudCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYg
KE5TVGV4dElucHV0Q29udGV4dCAqY29udGV4dCA9IFttX3ZpZXcgaW5wdXRDb250ZXh0XSkgewot
ICAgICAgICBhdXRvIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpOworICAgICAgICBXZWFr
UHRyIHdlYWtUaGlzIHsgKnRoaXMgfTsKICAgICAgICAgUmV0YWluUHRyPE5TRXZlbnQ+IHJldGFp
bmVkRXZlbnQgPSBldmVudDsKICAgICAgICAgW2NvbnRleHQgaGFuZGxlRXZlbnQ6ZXZlbnQgY29t
cGxldGlvbkhhbmRsZXI6W3dlYWtUaGlzLCByZXRhaW5lZEV2ZW50XSAoQk9PTCBoYW5kbGVkKSB7
CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQpAQCAtNTc5NCw3ICs1Nzk0LDcgQEAgdm9pZCBX
ZWJWaWV3SW1wbDo6aGFuZGxlQ29udGV4dE1lbnVUcmFuc2xhdGlvbihjb25zdCBXZWJDb3JlOjpU
cmFuc2xhdGlvbkNvbnRleHQKICAgICBbdHJhbnNsYXRpb25WaWV3Q29udHJvbGxlciBzZXRUZXh0
OmFkb3B0TlMoW1tOU0F0dHJpYnV0ZWRTdHJpbmcgYWxsb2NdIGluaXRXaXRoU3RyaW5nOmluZm8u
dGV4dF0pLmdldCgpXTsKICAgICBpZiAoaW5mby5tb2RlID09IFdlYkNvcmU6OlRyYW5zbGF0aW9u
Q29udGV4dE1lbnVNb2RlOjpFZGl0YWJsZSkgewogICAgICAgICBbdHJhbnNsYXRpb25WaWV3Q29u
dHJvbGxlciBzZXRJc1NvdXJjZUVkaXRhYmxlOllFU107Ci0gICAgICAgIFt0cmFuc2xhdGlvblZp
ZXdDb250cm9sbGVyIHNldFJlcGxhY2VtZW50SGFuZGxlcjpbdGhpcywgd2Vha1RoaXMgPSBtYWtl
V2Vha1B0cigqdGhpcyldKE5TQXR0cmlidXRlZFN0cmluZyAqc3RyaW5nKSB7CisgICAgICAgIFt0
cmFuc2xhdGlvblZpZXdDb250cm9sbGVyIHNldFJlcGxhY2VtZW50SGFuZGxlcjpbdGhpcywgd2Vh
a1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0oTlNBdHRyaWJ1dGVkU3RyaW5nICpzdHJpbmcpIHsK
ICAgICAgICAgICAgIGlmICh3ZWFrVGhpcykKICAgICAgICAgICAgICAgICBpbnNlcnRUZXh0KHN0
cmluZy5zdHJpbmcpOwogICAgICAgICB9XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
R1BVL0dQVVByb2Nlc3NQcm94eS5jcHAKaW5kZXggNzEwNTJhY2M1NWE1MTdiN2YwZmM0MzhiMGQz
MGQwOWNiMDIwMmVmMC4uZmFkNWY5ZDY3NDRhYzJmY2I1NGNhYWVlZTYzZWI2MzMyNTE0YzAxZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5jcHAK
QEAgLTM0MCw3ICszNDAsNyBAQCB2b2lkIEdQVVByb2Nlc3NQcm94eTo6Z2V0R1BVUHJvY2Vzc0Nv
bm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiB3ZWJQcm9jZXNzUHJveHksCiAKICAgICBSRUxFQVNF
X0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gR1BVUHJvY2Vzc1Byb3h5IGlzIHRha2luZyBh
IGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgYSB3ZWIgcHJvY2VzcyBpcyByZXF1ZXN0aW5n
IGEgY29ubmVjdGlvbiIsIHRoaXMpOwogICAgIHN0YXJ0UmVzcG9uc2l2ZW5lc3NUaW1lcihVc2VM
YXp5U3RvcDo6Tm8pOwotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6R1BVUHJvY2Vz
czo6Q3JlYXRlR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyB7IHdlYlByb2Nlc3NQcm94eS5jb3Jl
UHJvY2Vzc0lkZW50aWZpZXIoKSwgd2ViUHJvY2Vzc1Byb3h5LnNlc3Npb25JRCgpLCBwYXJhbWV0
ZXJzIH0sIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcmVwbHkgPSBXVEZN
b3ZlKHJlcGx5KV0oYXV0byYmIGlkZW50aWZpZXIsIGF1dG8mJiBjb25uZWN0aW9uUGFyYW1ldGVy
cykgbXV0YWJsZSB7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpHUFVQcm9jZXNz
OjpDcmVhdGVHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzIHsgd2ViUHJvY2Vzc1Byb3h5LmNvcmVQ
cm9jZXNzSWRlbnRpZmllcigpLCB3ZWJQcm9jZXNzUHJveHkuc2Vzc2lvbklEKCksIHBhcmFtZXRl
cnMgfSwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHJlcGx5ID0gV1RGTW92
ZShyZXBseSldKGF1dG8mJiBpZGVudGlmaWVyLCBhdXRvJiYgY29ubmVjdGlvblBhcmFtZXRlcnMp
IG11dGFibGUgewogICAgICAgICBpZiAoIXdlYWtUaGlzKSB7CiAgICAgICAgICAgICBSRUxFQVNF
X0xPR19FUlJPUihQcm9jZXNzLCAiR1BVUHJvY2Vzc1Byb3h5OjpnZXRHUFVQcm9jZXNzQ29ubmVj
dGlvbjogR1BVUHJvY2Vzc1Byb3h5IGRlYWxsb2NhdGVkIGR1cmluZyBjb25uZWN0aW9uIGVzdGFi
bGlzaG1lbnQiKTsKICAgICAgICAgICAgIHJldHVybiByZXBseSh7IH0pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvY29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0Fy
Yml0cmF0b3JQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvY29j
b2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eUNvY29hLm1tCmluZGV4IDM4MjEy
Y2I1MzdhOWIzNGE3OTgzOTVhYzg0NDY1MzRhNjdmYzU1NDAuLmIyYjMxNTVmZTQ5YmUyMGE4ZmNi
MGZkNmJhY2Y3YTUzOWM0YTNlYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L01lZGlhL2NvY29hL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlDb2NvYS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9jb2NvYS9BdWRpb1Nlc3Npb25Sb3V0
aW5nQXJiaXRyYXRvclByb3h5Q29jb2EubW0KQEAgLTYxLDcgKzYxLDcgQEAgdm9pZCBBdWRpb1Nl
c3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpiZWdpblJvdXRpbmdBcmJpdHJhdGlvbldpdGhD
YXRlZ29yeShXZWIKICAgICBtX2NhdGVnb3J5ID0gY2F0ZWdvcnk7CiAgICAgbV9hcmJpdHJhdGlv
blN0YXR1cyA9IEFyYml0cmF0aW9uU3RhdHVzOjpQZW5kaW5nOwogICAgIG1fYXJiaXRyYXRpb25V
cGRhdGVUaW1lID0gV2FsbFRpbWU6Om5vdygpOwotICAgIFNoYXJlZFJvdXRpbmdBcmJpdHJhdG9y
OjpzaGFyZWRJbnN0YW5jZSgpLmJlZ2luUm91dGluZ0FyYml0cmF0aW9uRm9yVG9rZW4obV90b2tl
biwgY2F0ZWdvcnksIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgY2FsbGJhY2sgPSBX
VEZNb3ZlKGNhbGxiYWNrKV0gKFJvdXRpbmdBcmJpdHJhdGlvbkVycm9yIGVycm9yLCBEZWZhdWx0
Um91dGVDaGFuZ2VkIHJvdXRlQ2hhbmdlZCkgbXV0YWJsZSB7CisgICAgU2hhcmVkUm91dGluZ0Fy
Yml0cmF0b3I6OnNoYXJlZEluc3RhbmNlKCkuYmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25Gb3JUb2tl
bihtX3Rva2VuLCBjYXRlZ29yeSwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGNhbGxi
YWNrID0gV1RGTW92ZShjYWxsYmFjayldIChSb3V0aW5nQXJiaXRyYXRpb25FcnJvciBlcnJvciwg
RGVmYXVsdFJvdXRlQ2hhbmdlZCByb3V0ZUNoYW5nZWQpIG11dGFibGUgewogICAgICAgICBpZiAo
d2Vha1RoaXMpCiAgICAgICAgICAgICB3ZWFrVGhpcy0+bV9hcmJpdHJhdGlvblN0YXR1cyA9IGVy
cm9yID09IFJvdXRpbmdBcmJpdHJhdGlvbkVycm9yOjpOb25lID8gQXJiaXRyYXRpb25TdGF0dXM6
OkFjdGl2ZSA6IEFyYml0cmF0aW9uU3RhdHVzOjpOb25lOwogICAgICAgICBjYWxsYmFjayhlcnJv
ciwgcm91dGVDaGFuZ2VkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IDMxMGY2YWVjNTU0NDg5M2RkMzgw
NjBiNWMwOTU5MjVlZDUzYzkxYTcuLmJiNzViYTM1NjNlZmYyZjgxZjUxODM0MWY2Nzg2OTFlODg2
Y2E3ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtMjU3LDcgKzI1Nyw3IEBAIHZvaWQgTmV0d29ya1By
b2Nlc3NQcm94eTo6Z2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYg
d2ViUHJvY2VzCiAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIE5ldHdv
cmtQcm9jZXNzUHJveHkgaXMgdGFraW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSBh
IHdlYiBwcm9jZXNzIGlzIHJlcXVlc3RpbmcgYSBjb25uZWN0aW9uIiwgdGhpcyk7CiAgICAgaWYg
KCFpc0xhdW5jaGluZygpKQogICAgICAgICBzdGFydFJlc3BvbnNpdmVuZXNzVGltZXIoVXNlTGF6
eVN0b3A6Ok5vKTsKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9j
ZXNzOjpDcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyB7IHdlYlByb2Nlc3NQcm94
eS5jb3JlUHJvY2Vzc0lkZW50aWZpZXIoKSwgd2ViUHJvY2Vzc1Byb3h5LnNlc3Npb25JRCgpIH0s
IFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcmVwbHkgPSBXVEZNb3ZlKHJl
cGx5KV0oYXV0byYmIGlkZW50aWZpZXIsIGF1dG8gY29va2llQWNjZXB0UG9saWN5KSBtdXRhYmxl
IHsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpDcmVh
dGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyB7IHdlYlByb2Nlc3NQcm94eS5jb3JlUHJv
Y2Vzc0lkZW50aWZpZXIoKSwgd2ViUHJvY2Vzc1Byb3h5LnNlc3Npb25JRCgpIH0sIFt0aGlzLCB3
ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCByZXBseSA9IFdURk1vdmUocmVwbHkpXShhdXRv
JiYgaWRlbnRpZmllciwgYXV0byBjb29raWVBY2NlcHRQb2xpY3kpIG11dGFibGUgewogICAgICAg
ICBpZiAoIXdlYWtUaGlzKSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihQcm9jZXNz
LCAiTmV0d29ya1Byb2Nlc3NQcm94eTo6Z2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOiBOZXR3
b3JrUHJvY2Vzc1Byb3h5IGRlYWxsb2NhdGVkIGR1cmluZyBjb25uZWN0aW9uIGVzdGFibGlzaG1l
bnQiKTsKICAgICAgICAgICAgIHJldHVybiByZXBseSh7IH0pOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcAppbmRleCA3MmNlOWVmNzYyZDk5N2M2YTc4ZDFj
NTQ5YmQ4ZGJlNTFjY2IyZDY5Li40OTJmNDNkOWM2OTFkMzAwOGZlMWU5ZjNmNmY2NWU1ZmI1YWE4
MTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcApA
QCAtMTMzLDcgKzEzMyw3IEBAIHZvaWQgUHJvY2Vzc1Rocm90dGxlcjo6c2V0QXNzZXJ0aW9uVHlw
ZShQcm9jZXNzQXNzZXJ0aW9uVHlwZSBuZXdUeXBlKQogICAgIGF1dG8gcHJldmlvdXNBc3NlcnRp
b24gPSBzdGQ6OmV4Y2hhbmdlKG1fYXNzZXJ0aW9uLCBudWxscHRyKTsKICAgICBpZiAobV9zaG91
bGRUYWtlVUlCYWNrZ3JvdW5kQXNzZXJ0aW9uKSB7CiAgICAgICAgIGF1dG8gYXNzZXJ0aW9uID0g
UHJvY2Vzc0FuZFVJQXNzZXJ0aW9uOjpjcmVhdGUobV9wcm9jZXNzSWRlbnRpZmllciwgYXNzZXJ0
aW9uTmFtZShuZXdUeXBlKSwgbmV3VHlwZSwgUHJvY2Vzc0Fzc2VydGlvbjo6TW9kZTo6QXN5bmMs
IFtwcmV2aW91c0Fzc2VydGlvbiA9IFdURk1vdmUocHJldmlvdXNBc3NlcnRpb24pXSB7IH0pOwot
ICAgICAgICBhc3NlcnRpb24tPnNldFVJQXNzZXJ0aW9uRXhwaXJhdGlvbkhhbmRsZXIoW3dlYWtU
aGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSB7CisgICAgICAgIGFzc2VydGlvbi0+c2V0VUlBc3Nl
cnRpb25FeHBpcmF0aW9uSGFuZGxlcihbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0gewog
ICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQogICAgICAgICAgICAgICAgIHdlYWtUaGlzLT51aUFz
c2VydGlvbldpbGxFeHBpcmVJbW1pbmVudGx5KCk7CiAgICAgICAgIH0pOwpAQCAtMTQxLDcgKzE0
MSw3IEBAIHZvaWQgUHJvY2Vzc1Rocm90dGxlcjo6c2V0QXNzZXJ0aW9uVHlwZShQcm9jZXNzQXNz
ZXJ0aW9uVHlwZSBuZXdUeXBlKQogICAgIH0gZWxzZQogICAgICAgICBtX2Fzc2VydGlvbiA9IFBy
b2Nlc3NBc3NlcnRpb246OmNyZWF0ZShtX3Byb2Nlc3NJZGVudGlmaWVyLCBhc3NlcnRpb25OYW1l
KG5ld1R5cGUpLCBuZXdUeXBlLCBQcm9jZXNzQXNzZXJ0aW9uOjpNb2RlOjpBc3luYywgW3ByZXZp
b3VzQXNzZXJ0aW9uID0gV1RGTW92ZShwcmV2aW91c0Fzc2VydGlvbildIHsgfSk7CiAKLSAgICBt
X2Fzc2VydGlvbi0+c2V0SW52YWxpZGF0aW9uSGFuZGxlcihbd2Vha1RoaXMgPSBtYWtlV2Vha1B0
cigqdGhpcyldIHsKKyAgICBtX2Fzc2VydGlvbi0+c2V0SW52YWxpZGF0aW9uSGFuZGxlcihbd2Vh
a1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0gewogICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAg
ICAgICAgICB3ZWFrVGhpcy0+YXNzZXJ0aW9uV2FzSW52YWxpZGF0ZWQoKTsKICAgICB9KTsKQEAg
LTIyMCw3ICsyMjAsNyBAQCB2b2lkIFByb2Nlc3NUaHJvdHRsZXI6OnNlbmRQcmVwYXJlVG9TdXNw
ZW5kSVBDKElzU3VzcGVuc2lvbkltbWluZW50IGlzU3VzcGVuc2lvbgogICAgIH0gZWxzZSB7CiAg
ICAgICAgIG1fcGVuZGluZ1JlcXVlc3RUb1N1c3BlbmRJRCA9IGdlbmVyYXRlUHJlcGFyZVRvU3Vz
cGVuZFJlcXVlc3RJRCgpOwogICAgICAgICBQUk9DRVNTVEhST1RUTEVSX1JFTEVBU0VfTE9HKCJz
ZW5kUHJlcGFyZVRvU3VzcGVuZElQQzogU2VuZGluZyBQcmVwYXJlVG9TdXNwZW5kKCUiIFBSSXU2
NCAiLCBpc1N1c3BlbnNpb25JbW1pbmVudD0lZCkgSVBDIiwgKm1fcGVuZGluZ1JlcXVlc3RUb1N1
c3BlbmRJRCwgaXNTdXNwZW5zaW9uSW1taW5lbnQgPT0gSXNTdXNwZW5zaW9uSW1taW5lbnQ6Olll
cyk7Ci0gICAgICAgIG1fcHJvY2Vzcy5zZW5kUHJlcGFyZVRvU3VzcGVuZChpc1N1c3BlbnNpb25J
bW1pbmVudCwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCByZXF1ZXN0VG9T
dXNwZW5kSUQgPSAqbV9wZW5kaW5nUmVxdWVzdFRvU3VzcGVuZElEXSgpIG11dGFibGUgeworICAg
ICAgICBtX3Byb2Nlc3Muc2VuZFByZXBhcmVUb1N1c3BlbmQoaXNTdXNwZW5zaW9uSW1taW5lbnQs
IFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCByZXF1ZXN0VG9TdXNwZW5kSUQg
PSAqbV9wZW5kaW5nUmVxdWVzdFRvU3VzcGVuZElEXSgpIG11dGFibGUgewogICAgICAgICAgICAg
aWYgKHdlYWtUaGlzICYmIG1fcGVuZGluZ1JlcXVlc3RUb1N1c3BlbmRJRCAmJiAqbV9wZW5kaW5n
UmVxdWVzdFRvU3VzcGVuZElEID09IHJlcXVlc3RUb1N1c3BlbmRJRCkKICAgICAgICAgICAgICAg
ICBwcm9jZXNzUmVhZHlUb1N1c3BlbmQoKTsKICAgICAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1h
bmFnZXIuY3BwCmluZGV4IDJlMGI1OGU1YjkzNTNkZWE1NTAzNjBkZDZiMzRjMTQ4NDVlMjJhOGQu
LmFlODg3YTM0MGI5ZWJhYTQ4MTQ3ZjVkMjIwZTY2MTdhZTUyYjQzMWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUGVybWlz
c2lvbk1hbmFnZXIuY3BwCkBAIC0yMjUsNyArMjI1LDcgQEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlv
blBlcm1pc3Npb25NYW5hZ2VyOjpyZXF1ZXN0VXNlclBlcm1pc3Npb24oV2ViQ29yZTo6U3BlZWNo
UmUKICAgICBhdXRvIGNsaWVudE9yaWdpbiA9IHJlY29nbml0aW9uUmVxdWVzdC5jbGllbnRPcmln
aW4oKTsKICAgICBhdXRvIHJlcXVlc3RpbmdPcmlnaW4gPSBjbGllbnRPcmlnaW4uY2xpZW50T3Jp
Z2luLnNlY3VyaXR5T3JpZ2luKCk7CiAgICAgYXV0byB0b3BPcmlnaW4gPSBjbGllbnRPcmlnaW4u
dG9wT3JpZ2luLnNlY3VyaXR5T3JpZ2luKCk7Ci0gICAgYXV0byBkZWNpc2lvbkhhbmRsZXIgPSBb
dGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyldKGJvb2wgZ3JhbnRlZCkgeworICAg
IGF1dG8gZGVjaXNpb25IYW5kbGVyID0gW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlz
IH1dKGJvb2wgZ3JhbnRlZCkgewogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAg
cmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKaW5kZXggYjM5Mzdh
YzA0Mzc3MzkyZDMwYjE4MzNkZWUwYzAxZTZjYTE2ODlmMy4uMjFlZTQzYWVhNmUyMjg0ZWY2YjAy
MTI4OTk3MWM2ZTBkNmRiMjAwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNw
cApAQCAtMjQzLDcgKzI0Myw3IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHk6OmdyYW50UmVxdWVzdChVc2VyTWVkaWFQZXJtaXNzaW9uUmVxCiAKICAgICBhdXRv
JiB1c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luID0gcmVxdWVzdC51c2VyTWVkaWFEb2N1
bWVudFNlY3VyaXR5T3JpZ2luKCk7CiAgICAgYXV0byYgdG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5
T3JpZ2luID0gcmVxdWVzdC50b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4oKTsKLSAgICBt
X3BhZ2Uud2Vic2l0ZURhdGFTdG9yZSgpLmRldmljZUlkSGFzaFNhbHRTdG9yYWdlKCkuZGV2aWNl
SWRIYXNoU2FsdEZvck9yaWdpbih1c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luLCB0b3BM
ZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4sIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRy
KCp0aGlzKSwgcmVxdWVzdCA9IFJlZiB7IHJlcXVlc3QgfV0oU3RyaW5nJiYpIG11dGFibGUgewor
ICAgIG1fcGFnZS53ZWJzaXRlRGF0YVN0b3JlKCkuZGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2UoKS5k
ZXZpY2VJZEhhc2hTYWx0Rm9yT3JpZ2luKHVzZXJNZWRpYURvY3VtZW50U2VjdXJpdHlPcmlnaW4s
IHRvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbiwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0
ciB7ICp0aGlzIH0sIHJlcXVlc3QgPSBSZWYgeyByZXF1ZXN0IH1dKFN0cmluZyYmKSBtdXRhYmxl
IHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
ZmluaXNoR3JhbnRpbmdSZXF1ZXN0KHJlcXVlc3QpOwpAQCAtNjg5LDcgKzY4OSw3IEBAIHZvaWQg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmdldFVzZXJNZWRpYVBlcm1p
c3Npb25JbmZvKEZyYW1lSWRlCiAgICAgYXV0byByZXF1ZXN0SUQgPSBNZWRpYURldmljZVBlcm1p
c3Npb25SZXF1ZXN0SWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKICAgICBtX3BlbmRpbmdEZXZpY2VS
ZXF1ZXN0cy5hZGQocmVxdWVzdElEKTsKIAotICAgIGF1dG8gcmVxdWVzdCA9IFVzZXJNZWRpYVBl
cm1pc3Npb25DaGVja1Byb3h5OjpjcmVhdGUoZnJhbWVJRCwgW3RoaXMsIHdlYWtUaGlzID0gbWFr
ZVdlYWtQdHIoKnRoaXMpLCByZXF1ZXN0SUQsIGhhbmRsZXIgPSBXVEZNb3ZlKGhhbmRsZXIpXShh
dXRvIHBlcm1pc3Npb25JbmZvKSBtdXRhYmxlIHsKKyAgICBhdXRvIHJlcXVlc3QgPSBVc2VyTWVk
aWFQZXJtaXNzaW9uQ2hlY2tQcm94eTo6Y3JlYXRlKGZyYW1lSUQsIFt0aGlzLCB3ZWFrVGhpcyA9
IFdlYWtQdHIgeyAqdGhpcyB9LCByZXF1ZXN0SUQsIGhhbmRsZXIgPSBXVEZNb3ZlKGhhbmRsZXIp
XShhdXRvIHBlcm1pc3Npb25JbmZvKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcyB8
fCAhbV9wZW5kaW5nRGV2aWNlUmVxdWVzdHMucmVtb3ZlKHJlcXVlc3RJRCkpCiAgICAgICAgICAg
ICBwZXJtaXNzaW9uSW5mbyA9IFBlcm1pc3Npb25JbmZvOjpFcnJvcjsKICAgICAgICAgaGFuZGxl
cihwZXJtaXNzaW9uSW5mbyk7CkBAIC04MDgsNyArODA4LDcgQEAgdm9pZCBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUo
RnJhbWUKICAgICAgICAgYXV0byYgdG9wT3JpZ2luID0gdG9wTGV2ZWxEb2N1bWVudE9yaWdpbi5n
ZXQoKTsKIAogICAgICAgICBjYWxsQ29tcGxldGlvbkhhbmRsZXIucmVsZWFzZSgpOwotICAgICAg
ICBtX3BhZ2Uud2Vic2l0ZURhdGFTdG9yZSgpLmRldmljZUlkSGFzaFNhbHRTdG9yYWdlKCkuZGV2
aWNlSWRIYXNoU2FsdEZvck9yaWdpbihyZXF1ZXN0T3JpZ2luLCB0b3BPcmlnaW4sIFt0aGlzLCB3
ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcmVxdWVzdElELCBmcmFtZUlELCB1c2VyTWVk
aWFEb2N1bWVudE9yaWdpbiA9IFdURk1vdmUodXNlck1lZGlhRG9jdW1lbnRPcmlnaW4pLCB0b3BM
ZXZlbERvY3VtZW50T3JpZ2luID0gV1RGTW92ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2luKSwgb3Jp
Z2luSGFzUGVyc2lzdGVudEFjY2VzcywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKV0oU3RyaW5nJiYgZGV2aWNlSURIYXNoU2FsdCkgbXV0YWJsZSB7CisgICAg
ICAgIG1fcGFnZS53ZWJzaXRlRGF0YVN0b3JlKCkuZGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2UoKS5k
ZXZpY2VJZEhhc2hTYWx0Rm9yT3JpZ2luKHJlcXVlc3RPcmlnaW4sIHRvcE9yaWdpbiwgW3RoaXMs
IHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHJlcXVlc3RJRCwgZnJhbWVJRCwgdXNlck1l
ZGlhRG9jdW1lbnRPcmlnaW4gPSBXVEZNb3ZlKHVzZXJNZWRpYURvY3VtZW50T3JpZ2luKSwgdG9w
TGV2ZWxEb2N1bWVudE9yaWdpbiA9IFdURk1vdmUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbiksIG9y
aWdpbkhhc1BlcnNpc3RlbnRBY2Nlc3MsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcildKFN0cmluZyYmIGRldmljZUlESGFzaFNhbHQpIG11dGFibGUgewogICAg
ICAgICAgICAgYXV0byBjYWxsQ29tcGxldGlvbkhhbmRsZXIgPSBtYWtlU2NvcGVFeGl0KFsmY29t
cGxldGlvbkhhbmRsZXJdIHsKICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0s
IHsgfSk7CiAgICAgICAgICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1VzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1VzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyLmNwcAppbmRleCA0NTgzYjFjMmFiY2M3NzAyNzAzNWFh
ZWU1MjNhNTJlNjI3YmE1MGY1Li5jZDMxZTMxMGM4ZWQxYmJkMGU3YzE0NDY0NDg1NTUyZDM4OGQy
NmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQcm9jZXNz
TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUHJvY2Vz
c01hbmFnZXIuY3BwCkBAIC0yMjYsNyArMjI2LDcgQEAgdm9pZCBVc2VyTWVkaWFQcm9jZXNzTWFu
YWdlcjo6Y2FwdHVyZURldmljZXNDaGFuZ2VkKCkKIAogdm9pZCBVc2VyTWVkaWFQcm9jZXNzTWFu
YWdlcjo6dXBkYXRlQ2FwdHVyZURldmljZXMoU2hvdWxkTm90aWZ5IHNob3VsZE5vdGlmeSkKIHsK
LSAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5nZXRN
ZWRpYVN0cmVhbURldmljZXMoW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0aGlzLCBz
aG91bGROb3RpZnldKGF1dG8mJiBuZXdEZXZpY2VzKSBtdXRhYmxlIHsKKyAgICBXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5nZXRNZWRpYVN0cmVhbURldmlj
ZXMoW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHRoaXMsIHNob3VsZE5vdGlmeV0oYXV0
byYmIG5ld0RldmljZXMpIG11dGFibGUgewogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAg
ICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3IuY3BwCmluZGV4IGZjNjdmNzdjNmQyZGM3
OTU3NzFhMDBkZTRkOTkxZjk2ZTk4MjkwZGMuLjkxYTZmMzIxMDNlMGVkODZiNmRjNmIwYTYxNzFh
ODgyZTZlYzJmZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL0F1dGhlbnRpY2F0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3IuY3BwCkBAIC0zNiw3ICszNiw3IEBAIHZv
aWQgQXV0aGVudGljYXRvcjo6aGFuZGxlUmVxdWVzdChjb25zdCBXZWJBdXRoZW50aWNhdGlvblJl
cXVlc3REYXRhJiBkYXRhKQogewogICAgIG1fcGVuZGluZ1JlcXVlc3REYXRhID0gZGF0YTsKICAg
ICAvLyBFbmZvcmNlIGFzeW5jaHJvbm91cyBleGVjdXRpb24gb2YgbWFrZUNyZWRlbnRpYWwvZ2V0
QXNzZXJ0aW9uLgotICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbd2Vha1RoaXMgPSBtYWtl
V2Vha1B0cigqdGhpcyksIHRoaXNdIHsKKyAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3dl
YWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHRoaXNdIHsKICAgICAgICAgaWYgKCF3ZWFrVGhp
cykKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgaWYgKFdURjo6aG9sZHNfYWx0ZXJuYXRp
dmU8V2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucz4obV9wZW5kaW5n
UmVxdWVzdERhdGEub3B0aW9ucykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5jcHAK
aW5kZXggYjk0OGVmYjBlZmU4ZGVhYWQzZGY0YTViMTNkOTdkYWM2YWVkMzlmYi4uNjkzYmUzZjA2
ZDIyMjYyMjRjZjYwNWE0YWNjYjE1MWIwMzFhOTYwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0
b3JNYW5hZ2VyLmNwcApAQCAtMjM4LDcgKzIzOCw3IEBAIHZvaWQgQXV0aGVudGljYXRvck1hbmFn
ZXI6OmVuYWJsZU5hdGl2ZVN1cHBvcnQoKQogCiB2b2lkIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpj
bGVhclN0YXRlQXN5bmMoKQogewotICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbd2Vha1Ro
aXMgPSBtYWtlV2Vha1B0cigqdGhpcyldIHsKKyAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2go
W3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgd2Vha1RoaXMtPmNsZWFyU3RhdGUoKTsKQEAg
LTMwMCw3ICszMDAsNyBAQCB2b2lkIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpyZXNwb25kUmVjZWl2
ZWQoUmVzcG9uZCYmIHJlc3BvbmQpCiAKIHZvaWQgQXV0aGVudGljYXRvck1hbmFnZXI6OmRvd25n
cmFkZShBdXRoZW50aWNhdG9yKiBpZCwgUmVmPEF1dGhlbnRpY2F0b3I+JiYgZG93bmdyYWRlZEF1
dGhlbnRpY2F0b3IpCiB7Ci0gICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt3ZWFrVGhpcyA9
IG1ha2VXZWFrUHRyKCp0aGlzKSwgaWRdIHsKKyAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2go
W3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGlkXSB7CiAgICAgICAgIGlmICghd2Vha1Ro
aXMpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGF1dG8gcmVtb3ZlZCA9IHdlYWtUaGlz
LT5tX2F1dGhlbnRpY2F0b3JzLnJlbW92ZShpZCk7CkBAIC0zMzcsNyArMzM3LDcgQEAgdm9pZCBB
dXRoZW50aWNhdG9yTWFuYWdlcjo6cmVxdWVzdFBpbih1aW50NjRfdCByZXRyaWVzLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGMKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8gY2Fs
bGJhY2sgPSBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXMsIGNvbXBsZXRpb25I
YW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildIChjb25zdCBXVEY6OlN0cmluZyYg
cGluKSBtdXRhYmxlIHsKKyAgICBhdXRvIGNhbGxiYWNrID0gW3dlYWtUaGlzID0gV2Vha1B0ciB7
ICp0aGlzIH0sIHRoaXMsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcildIChjb25zdCBXVEY6OlN0cmluZyYgcGluKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCF3
ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtNDYyLDcgKzQ2Miw3IEBAIHZvaWQg
QXV0aGVudGljYXRvck1hbmFnZXI6OnJ1blBhbmVsKCkKIAogICAgIG1fcGVuZGluZ1JlcXVlc3RE
YXRhLnBhbmVsID0gQVBJOjpXZWJBdXRoZW50aWNhdGlvblBhbmVsOjpjcmVhdGUoKnRoaXMsIGdl
dFJwSWQob3B0aW9ucyksIHRyYW5zcG9ydHMsIGdldENsaWVudERhdGFUeXBlKG9wdGlvbnMpLCBn
ZXRVc2VyTmFtZShvcHRpb25zKSk7CiAgICAgYXV0byYgcGFuZWwgPSAqbV9wZW5kaW5nUmVxdWVz
dERhdGEucGFuZWw7Ci0gICAgcGFnZS0+dWlDbGllbnQoKS5ydW5XZWJBdXRoZW50aWNhdGlvblBh
bmVsKCpwYWdlLCBwYW5lbCwgKmZyYW1lLCBGcmFtZUluZm9EYXRhIHsgbV9wZW5kaW5nUmVxdWVz
dERhdGEuZnJhbWVJbmZvIH0sIFt0cmFuc3BvcnRzID0gV1RGTW92ZSh0cmFuc3BvcnRzKSwgd2Vh
a1BhbmVsID0gbWFrZVdlYWtQdHIocGFuZWwpLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlz
KSwgdGhpc10gKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQgcmVzdWx0KSB7CisgICAgcGFn
ZS0+dWlDbGllbnQoKS5ydW5XZWJBdXRoZW50aWNhdGlvblBhbmVsKCpwYWdlLCBwYW5lbCwgKmZy
YW1lLCBGcmFtZUluZm9EYXRhIHsgbV9wZW5kaW5nUmVxdWVzdERhdGEuZnJhbWVJbmZvIH0sIFt0
cmFuc3BvcnRzID0gV1RGTW92ZSh0cmFuc3BvcnRzKSwgd2Vha1BhbmVsID0gbWFrZVdlYWtQdHIo
cGFuZWwpLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB0aGlzXSAoV2ViQXV0aGVudGlj
YXRpb25QYW5lbFJlc3VsdCByZXN1bHQpIHsKICAgICAgICAgLy8gVGhlIHBhbmVsIGFkZHJlc3Mg
aXMgdXNlZCB0byBkZXRlcm1pbmUgaWYgdGhlIGN1cnJlbnQgcGVuZGluZyByZXF1ZXN0IGlzIHN0
aWxsIHRoZSBzYW1lLgogICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICF3ZWFrUGFuZWwKICAgICAg
ICAgICAgIHx8IChyZXN1bHQgPT0gV2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3VsdDo6RGlkTm90
UHJlc2VudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRp
Y2F0aW9uL0F1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNl
LmNwcAppbmRleCBlZDE3NTllNzNhMzA1NjRlMmE0OTYyOGUyNDQ0NzA2YjM3OGEzOGIzLi4xM2I5
MTM2NzQ1NGRmMmQ4ZTJkOWMzOTE5YTdmNTE5ODIzOGNjNDViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yVHJhbnNwb3J0
U2VydmljZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vQXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2UuY3BwCkBAIC03NSw3ICs3NSw3IEBAIEF1
dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlOjpBdXRoZW50aWNhdG9yVHJhbnNwb3J0U2Vydmlj
ZShPYnNlcnZlciYgb2JzZXJ2ZXIpCiAKIHZvaWQgQXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZp
Y2U6OnN0YXJ0RGlzY292ZXJ5KCkKIHsKLSAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3dl
YWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSB7CisgICAgUnVuTG9vcDo6bWFpbigpLmRpc3Bh
dGNoKFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XSB7CiAgICAgICAgIGlmICghd2Vha1Ro
aXMpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIHdlYWtUaGlzLT5zdGFydERpc2NvdmVy
eUludGVybmFsKCk7CkBAIC04NCw3ICs4NCw3IEBAIHZvaWQgQXV0aGVudGljYXRvclRyYW5zcG9y
dFNlcnZpY2U6OnN0YXJ0RGlzY292ZXJ5KCkKIAogdm9pZCBBdXRoZW50aWNhdG9yVHJhbnNwb3J0
U2VydmljZTo6cmVzdGFydERpc2NvdmVyeSgpCiB7Ci0gICAgUnVuTG9vcDo6bWFpbigpLmRpc3Bh
dGNoKFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0geworICAgIFJ1bkxvb3A6Om1haW4o
KS5kaXNwYXRjaChbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0gewogICAgICAgICBpZiAo
IXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB3ZWFrVGhpcy0+cmVzdGFy
dERpc2NvdmVyeUludGVybmFsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0
b3IubW0KaW5kZXggZWQyZGVmODlhODk4MmE2ZWNhYWUzZmEwYTc1MzE4OTg2NWVhNjcwYS4uZGYx
MTJjOGZiOGM3ZjhlNGYyMGE0MzQ3OGUwMTkyMDM2MTA1ZTQ0OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxBdXRoZW50aWNh
dG9yLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0Nv
Y29hL0xvY2FsQXV0aGVudGljYXRvci5tbQpAQCAtMjM2LDcgKzIzNiw3IEBAIHZvaWQgTG9jYWxB
dXRoZW50aWNhdG9yOjptYWtlQ3JlZGVudGlhbCgpCiAgICAgLy8gR2V0IHVzZXIgY29uc2VudC4K
ICAgICBpZiAod2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkKCkpIHsKICAgICAgICAgaWYg
KGF1dG8qIG9ic2VydmVyID0gdGhpcy0+b2JzZXJ2ZXIoKSkgewotICAgICAgICAgICAgYXV0byBj
YWxsYmFjayA9IFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0gKExBQ29udGV4dCAqY29u
dGV4dCkgeworICAgICAgICAgICAgYXV0byBjYWxsYmFjayA9IFt3ZWFrVGhpcyA9IFdlYWtQdHIg
eyAqdGhpcyB9XSAoTEFDb250ZXh0ICpjb250ZXh0KSB7CiAgICAgICAgICAgICAgICAgQVNTRVJU
KFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAg
ICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC0yNTAsNyArMjUwLDcgQEAgdm9pZCBMb2NhbEF1
dGhlbnRpY2F0b3I6Om1ha2VDcmVkZW50aWFsKCkKICAgICB9CiAKICAgICBpZiAoYXV0byogb2Jz
ZXJ2ZXIgPSB0aGlzLT5vYnNlcnZlcigpKSB7Ci0gICAgICAgIGF1dG8gY2FsbGJhY2sgPSBbd2Vh
a1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyldIChMb2NhbEF1dGhlbnRpY2F0b3JQb2xpY3kgcG9s
aWN5KSB7CisgICAgICAgIGF1dG8gY2FsbGJhY2sgPSBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRo
aXMgfV0gKExvY2FsQXV0aGVudGljYXRvclBvbGljeSBwb2xpY3kpIHsKICAgICAgICAgICAgIEFT
U0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAg
ICAgICAgICAgICAgIHJldHVybjsKQEAgLTI4NSw3ICsyODUsNyBAQCB2b2lkIExvY2FsQXV0aGVu
dGljYXRvcjo6Y29udGludWVNYWtlQ3JlZGVudGlhbEFmdGVyRGVjaWRlUG9saWN5KExvY2FsQXV0
aGVudGljYQogICAgIH0KIAogICAgIFNlY0FjY2Vzc0NvbnRyb2xSZWYgYWNjZXNzQ29udHJvbFJl
ZiA9IGFjY2Vzc0NvbnRyb2wuZ2V0KCk7Ci0gICAgYXV0byBjYWxsYmFjayA9IFthY2Nlc3NDb250
cm9sID0gV1RGTW92ZShhY2Nlc3NDb250cm9sKSwgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhp
cyldIChMb2NhbENvbm5lY3Rpb246OlVzZXJWZXJpZmljYXRpb24gdmVyaWZpY2F0aW9uLCBMQUNv
bnRleHQgKmNvbnRleHQpIHsKKyAgICBhdXRvIGNhbGxiYWNrID0gW2FjY2Vzc0NvbnRyb2wgPSBX
VEZNb3ZlKGFjY2Vzc0NvbnRyb2wpLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XSAoTG9j
YWxDb25uZWN0aW9uOjpVc2VyVmVyaWZpY2F0aW9uIHZlcmlmaWNhdGlvbiwgTEFDb250ZXh0ICpj
b250ZXh0KSB7CiAgICAgICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgICAgIGlm
ICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0zMTIsNyArMzEyLDcgQEAgdm9p
ZCBMb2NhbEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlTWFrZUNyZWRlbnRpYWxBZnRlclJlY2Vpdmlu
Z0xBQ29udGV4dChMQUNvbnRleHQKICAgICB9CiAKICAgICBTZWNBY2Nlc3NDb250cm9sUmVmIGFj
Y2Vzc0NvbnRyb2xSZWYgPSBhY2Nlc3NDb250cm9sLmdldCgpOwotICAgIGF1dG8gY2FsbGJhY2sg
PSBbYWNjZXNzQ29udHJvbCA9IFdURk1vdmUoYWNjZXNzQ29udHJvbCksIGNvbnRleHQgPSByZXRh
aW5QdHIoY29udGV4dCksIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSAoTG9jYWxDb25u
ZWN0aW9uOjpVc2VyVmVyaWZpY2F0aW9uIHZlcmlmaWNhdGlvbikgeworICAgIGF1dG8gY2FsbGJh
Y2sgPSBbYWNjZXNzQ29udHJvbCA9IFdURk1vdmUoYWNjZXNzQ29udHJvbCksIGNvbnRleHQgPSBy
ZXRhaW5QdHIoY29udGV4dCksIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dIChMb2NhbENv
bm5lY3Rpb246OlVzZXJWZXJpZmljYXRpb24gdmVyaWZpY2F0aW9uKSB7CiAgICAgICAgIEFTU0VS
VChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAg
ICByZXR1cm47CkBAIC00MjIsNyArNDIyLDcgQEAgdm9pZCBMb2NhbEF1dGhlbnRpY2F0b3I6OmNv
bnRpbnVlTWFrZUNyZWRlbnRpYWxBZnRlclVzZXJWZXJpZmljYXRpb24oU2VjQWNjZXNzQ28KICAg
ICAvLyBTdGVwIDEzLiBBcHBsZSBBdHRlc3RhdGlvbgogICAgIGF1dG8gYXV0aERhdGEgPSBidWls
ZEF1dGhEYXRhKGNyZWF0aW9uT3B0aW9ucy5ycC5pZCwgZmxhZ3MsIGNvdW50ZXIsIGJ1aWxkQXR0
ZXN0ZWRDcmVkZW50aWFsRGF0YShhYWd1aWRWZWN0b3IoKSwgY3JlZGVudGlhbElkLCBjb3NlUHVi
bGljS2V5KSk7CiAgICAgYXV0byBuc0F1dGhEYXRhID0gdG9OU0RhdGEoYXV0aERhdGEpOwotICAg
IGF1dG8gY2FsbGJhY2sgPSBbY3JlZGVudGlhbElkID0gV1RGTW92ZShjcmVkZW50aWFsSWQpLCBh
dXRoRGF0YSA9IFdURk1vdmUoYXV0aERhdGEpLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlz
KV0gKE5TQXJyYXkgKiBfTnVsbGFibGUgY2VydGlmaWNhdGVzLCBOU0Vycm9yICogX051bGxhYmxl
IGVycm9yKSBtdXRhYmxlIHsKKyAgICBhdXRvIGNhbGxiYWNrID0gW2NyZWRlbnRpYWxJZCA9IFdU
Rk1vdmUoY3JlZGVudGlhbElkKSwgYXV0aERhdGEgPSBXVEZNb3ZlKGF1dGhEYXRhKSwgd2Vha1Ro
aXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0gKE5TQXJyYXkgKiBfTnVsbGFibGUgY2VydGlmaWNhdGVz
LCBOU0Vycm9yICogX051bGxhYmxlIGVycm9yKSBtdXRhYmxlIHsKICAgICAgICAgQVNTRVJUKFJ1
bkxvb3A6OmlzTWFpbigpKTsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJl
dHVybjsKQEAgLTUxMCw3ICs1MTAsNyBAQCB2b2lkIExvY2FsQXV0aGVudGljYXRvcjo6Z2V0QXNz
ZXJ0aW9uKCkKICAgICBtX2Nvbm5lY3Rpb24tPmZpbHRlclJlc3BvbnNlcyhhc3NlcnRpb25SZXNw
b25zZXMpOwogCiAgICAgaWYgKGF1dG8qIG9ic2VydmVyID0gdGhpcy0+b2JzZXJ2ZXIoKSkgewot
ICAgICAgICBhdXRvIGNhbGxiYWNrID0gW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRo
aXMpXSAoQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlKiByZXNwb25zZSkgeworICAgICAg
ICBhdXRvIGNhbGxiYWNrID0gW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dIChB
dXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UqIHJlc3BvbnNlKSB7CiAgICAgICAgICAgICBB
U1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAg
ICAgICAgICAgICAgICByZXR1cm47CkBAIC01MzUsNyArNTM1LDcgQEAgdm9pZCBMb2NhbEF1dGhl
bnRpY2F0b3I6OmNvbnRpbnVlR2V0QXNzZXJ0aW9uQWZ0ZXJSZXNwb25zZVNlbGVjdGVkKFJlZjxX
ZWJDb3JlOjoKICAgICAgICAgYXV0byBhY2Nlc3NDb250cm9sUmVmID0gcmVzcG9uc2UtPmFjY2Vz
c0NvbnRyb2woKTsKICAgICAgICAgTEFDb250ZXh0ICpjb250ZXh0ID0gcmVzcG9uc2UtPmxhQ29u
dGV4dCgpOwogICAgICAgICBhdXRvIGNhbGxiYWNrID0gWwotICAgICAgICAgICAgd2Vha1RoaXMg
PSBtYWtlV2Vha1B0cigqdGhpcyksCisgICAgICAgICAgICB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAq
dGhpcyB9LAogICAgICAgICAgICAgcmVzcG9uc2UgPSBXVEZNb3ZlKHJlc3BvbnNlKQogICAgICAg
ICBdIChMb2NhbENvbm5lY3Rpb246OlVzZXJWZXJpZmljYXRpb24gdmVyaWZpY2F0aW9uKSBtdXRh
YmxlIHsKICAgICAgICAgICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CkBAIC01NTMsNyAr
NTUzLDcgQEAgdm9pZCBMb2NhbEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlR2V0QXNzZXJ0aW9uQWZ0
ZXJSZXNwb25zZVNlbGVjdGVkKFJlZjxXZWJDb3JlOjoKIAogICAgIGF1dG8gYWNjZXNzQ29udHJv
bFJlZiA9IHJlc3BvbnNlLT5hY2Nlc3NDb250cm9sKCk7CiAgICAgYXV0byBjYWxsYmFjayA9IFsK
LSAgICAgICAgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksCisgICAgICAgIHdlYWtUaGlz
ID0gV2Vha1B0ciB7ICp0aGlzIH0sCiAgICAgICAgIHJlc3BvbnNlID0gV1RGTW92ZShyZXNwb25z
ZSkKICAgICBdIChMb2NhbENvbm5lY3Rpb246OlVzZXJWZXJpZmljYXRpb24gdmVyaWZpY2F0aW9u
LCBMQUNvbnRleHQgKmNvbnRleHQpIG11dGFibGUgewogICAgICAgICBBU1NFUlQoUnVuTG9vcDo6
aXNNYWluKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vQ29jb2EvTmZjU2VydmljZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkF1dGhlbnRpY2F0aW9uL0NvY29hL05mY1NlcnZpY2UubW0KaW5kZXggNjUzYTk4NGYzZGM3MTFm
M2ZkMzY4ZTlkNGE5OGZhNWFmOWIzYTE5Yi4uYzFiYjUyYzI2MDcyMzdjYjY5OTc3NjQ1YTkzMDU2
M2I0NTQ3MmRkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vQ29jb2EvTmZjU2VydmljZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9OZmNTZXJ2aWNlLm1tCkBAIC0xMDEsNyArMTAxLDcg
QEAgdm9pZCBOZmNTZXJ2aWNlOjpwbGF0Zm9ybVN0YXJ0RGlzY292ZXJ5KCkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgLy8gV2lsbCBiZSBleGVjdXRlZCBpbiBhIGRpZmZlcmVudCB0aHJlYWQuCi0g
ICAgYXV0byBjYWxsYmFjayA9IG1ha2VCbG9ja1B0cihbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigq
dGhpcyksIHRoaXNdIChORlJlYWRlclNlc3Npb24gKnNlc3Npb24sIE5TRXJyb3IgKmVycm9yKSBt
dXRhYmxlIHsKKyAgICBhdXRvIGNhbGxiYWNrID0gbWFrZUJsb2NrUHRyKFt3ZWFrVGhpcyA9IFdl
YWtQdHIgeyAqdGhpcyB9LCB0aGlzXSAoTkZSZWFkZXJTZXNzaW9uICpzZXNzaW9uLCBOU0Vycm9y
ICplcnJvcikgbXV0YWJsZSB7CiAgICAgICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwog
ICAgICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgICAgIExPR19FUlJPUigiQ291bGRuJ3Qgc3Rh
cnQgYSBORkMgcmVhZGVyIHNlc3Npb246ICVAIiwgZXJyb3IpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrSGlkQ29ubmVjdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01v
Y2tIaWRDb25uZWN0aW9uLmNwcAppbmRleCBlOTEwNWQxYzQwYzg5MzAwMTc1OWY1NWQ5NjQ2NmY4
ODM2MjM0ZTE3Li44NTVmZGUzNDcwZmI3ODQ4NWIwYWU1OWUwOWM4NjQyMWQwMGMxMTU2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01v
Y2tIaWRDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9Nb2NrL01vY2tIaWRDb25uZWN0aW9uLmNwcApAQCAtODQsNyArODQsNyBAQCBh
dXRvIE1vY2tIaWRDb25uZWN0aW9uOjpzZW5kU3luYyhjb25zdCBWZWN0b3I8dWludDhfdD4mIGRh
dGEpIC0+IERhdGFTZW50CiB2b2lkIE1vY2tIaWRDb25uZWN0aW9uOjpzZW5kKFZlY3Rvcjx1aW50
OF90PiYmIGRhdGEsIERhdGFTZW50Q2FsbGJhY2smJiBjYWxsYmFjaykKIHsKICAgICBBU1NFUlQo
aXNJbml0aWFsaXplZCgpKTsKLSAgICBhdXRvIHRhc2sgPSBtYWtlQmxvY2tQdHIoW3dlYWtUaGlz
ID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBkYXRhID0gV1RGTW92ZShkYXRhKSwgY2FsbGJhY2sgPSBX
VEZNb3ZlKGNhbGxiYWNrKV0oKSBtdXRhYmxlIHsKKyAgICBhdXRvIHRhc2sgPSBtYWtlQmxvY2tQ
dHIoW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGRhdGEgPSBXVEZNb3ZlKGRhdGEpLCBj
YWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSgpIG11dGFibGUgewogICAgICAgICBBU1NFUlQo
IVJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt3
ZWFrVGhpcywgZGF0YSA9IFdURk1vdmUoZGF0YSksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFj
ayldKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKSB7CkBAIC0yODEsNyAr
MjgxLDcgQEAgdm9pZCBNb2NrSGlkQ29ubmVjdGlvbjo6ZmVlZFJlcG9ydHMoKQogICAgICAgICBp
ZiAoIWlzRmlyc3QgJiYgc3RhZ2VzTWF0Y2goKSAmJiBtX2NvbmZpZ3VyYXRpb24uaGlkLT5lcnJv
ciA9PSBNb2NrOjpIaWRFcnJvcjo6V3JvbmdDaGFubmVsSWQpCiAgICAgICAgICAgICByZXBvcnQg
PSBGaWRvSGlkQ29udGludWF0aW9uUGFja2V0KG1fY3VycmVudENoYW5uZWwgLSAxLCAwLCB7IH0p
LmdldFNlcmlhbGl6ZWREYXRhKCk7CiAgICAgICAgIC8vIFBhY2tldHMgYXJlIGZlZWQgYXN5bmNo
cm9ub3VzbHkgdG8gbWltaWMgYWN0dWFsIGRhdGEgdHJhbnNtaXNzaW9uLgotICAgICAgICBSdW5M
b29wOjptYWluKCkuZGlzcGF0Y2goW3JlcG9ydCA9IFdURk1vdmUocmVwb3J0KSwgd2Vha1RoaXMg
PSBtYWtlV2Vha1B0cigqdGhpcyldKCkgbXV0YWJsZSB7CisgICAgICAgIFJ1bkxvb3A6Om1haW4o
KS5kaXNwYXRjaChbcmVwb3J0ID0gV1RGTW92ZShyZXBvcnQpLCB3ZWFrVGhpcyA9IFdlYWtQdHIg
eyAqdGhpcyB9XSgpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB3ZWFrVGhpcy0+cmVjZWl2ZVJlcG9ydChX
VEZNb3ZlKHJlcG9ydCkpOwpAQCAtMzA3LDcgKzMwNyw3IEBAIHZvaWQgTW9ja0hpZENvbm5lY3Rp
b246OnNob3VsZENvbnRpbnVlRmVlZFJlcG9ydHMoKQogdm9pZCBNb2NrSGlkQ29ubmVjdGlvbjo6
Y29udGludWVGZWVkUmVwb3J0cygpCiB7CiAgICAgLy8gU2VuZCBhY3R1YWwgcmVzcG9uc2UgZm9y
IHRoZSBuZXh0IHJ1bi4KLSAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3dlYWtUaGlzID0g
bWFrZVdlYWtQdHIoKnRoaXMpXSgpIG11dGFibGUgeworICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNw
YXRjaChbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0oKSBtdXRhYmxlIHsKICAgICAgICAg
aWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgd2Vha1RoaXMtPmZl
ZWRSZXBvcnRzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9Nb2NrL01vY2tOZmNTZXJ2aWNlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrTmZjU2VydmljZS5tbQppbmRleCBmYjhiMWQ1
NjQwNmRhMDQ2MzM2NWE3YzRjYzNlNDFiZDc4MTBhNTliLi40MDhhODc3ZWFiZTg2MTNlZGIyZDlk
NTU3YWNkMGYyZmZjMjBiNDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tOZmNTZXJ2aWNlLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja05mY1NlcnZpY2UubW0KQEAg
LTIwMSw3ICsyMDEsNyBAQCB2b2lkIE1vY2tOZmNTZXJ2aWNlOjpyZWNlaXZlU3RvcFBvbGxpbmco
KQogCiB2b2lkIE1vY2tOZmNTZXJ2aWNlOjpyZWNlaXZlU3RhcnRQb2xsaW5nKCkKIHsKLSAgICBS
dW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSB7
CisgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhp
cyB9XSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIHdlYWtUaGlzLT5kZXRlY3RUYWdzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NQcm94
eS5jcHAKaW5kZXggODY2YjY3NmIyZGRjNGRiYzY2ODdlMzBkOWZhZjIyODVmZmYxYjk4YS4uZWRj
NzRjODE0NzE3OGUwZWM4MjU4OGE0Y2I1OTcxNDNmYmIwMDQ0ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1
dGhuUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTA5LDcgKzEwOSw3IEBAIHZvaWQgV2ViQXV0aG5Qcm9j
ZXNzUHJveHk6OnByb2Nlc3NXaWxsU2h1dERvd24oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
KQogdm9pZCBXZWJBdXRoblByb2Nlc3NQcm94eTo6Z2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlv
bihXZWJQcm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQcm94eSwgTWVzc2FnZXM6OldlYlByb2Nlc3NQ
cm94eTo6R2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYgcmVwbHkp
CiB7CiAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFdlYkF1dGhuUHJv
Y2Vzc1Byb3h5IGlzIHRha2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgYSB3ZWIg
cHJvY2VzcyBpcyByZXF1ZXN0aW5nIGEgY29ubmVjdGlvbiIsIHRoaXMpOwotICAgIHNlbmRXaXRo
QXN5bmNSZXBseShNZXNzYWdlczo6V2ViQXV0aG5Qcm9jZXNzOjpDcmVhdGVXZWJBdXRobkNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MgeyB3ZWJQcm9jZXNzUHJveHkuY29yZVByb2Nlc3NJZGVudGlmaWVy
KCkgfSwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCByZXBseSA9IFdURk1v
dmUocmVwbHkpXShhdXRvJiYgaWRlbnRpZmllcikgbXV0YWJsZSB7CisgICAgc2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpXZWJBdXRoblByb2Nlc3M6OkNyZWF0ZVdlYkF1dGhuQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyB7IHdlYlByb2Nlc3NQcm94eS5jb3JlUHJvY2Vzc0lkZW50aWZpZXIoKSB9
LCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgcmVwbHkgPSBXVEZNb3ZlKHJl
cGx5KV0oYXV0byYmIGlkZW50aWZpZXIpIG11dGFibGUgewogICAgICAgICBpZiAoIXdlYWtUaGlz
KSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihQcm9jZXNzLCAiV2ViQXV0aG5Qcm9j
ZXNzUHJveHk6OmdldFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb246IFdlYkF1dGhuUHJvY2Vzc1By
b3h5IGRlYWxsb2NhdGVkIGR1cmluZyBjb25uZWN0aW9uIGVzdGFibGlzaG1lbnQiKTsKICAgICAg
ICAgICAgIHJldHVybiByZXBseSh7IH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9DdGFwQXV0aGVudGljYXRvci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL0N0YXBBdXRoZW50aWNh
dG9yLmNwcAppbmRleCBiNjQxZGQ5NDcwOTk5YTc5NWUxYzZjMDI0YmNhYjE5NWZjMjI5NzI0Li5i
ZjY4ZWRjZWViMTlmNzIyNjZjMDJkYTBjOTBhZGJjZWIxOGQ1OTVmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL0N0YXBBdXRoZW50aWNh
dG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9m
aWRvL0N0YXBBdXRoZW50aWNhdG9yLmNwcApAQCAtMTAyLDcgKzEwMiw3IEBAIHZvaWQgQ3RhcEF1
dGhlbnRpY2F0b3I6Om1ha2VDcmVkZW50aWFsKCkKICAgICAgICAgY2JvckNtZCA9IGVuY29kZU1h
a2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihyZXF1ZXN0RGF0YSgpLmhhc2gsIG9wdGlvbnMsIGlu
dGVybmFsVVZBdmFpbGFiaWxpdHksIFBpblBhcmFtZXRlcnMgeyBwaW46OmtQcm90b2NvbFZlcnNp
b24sIG1fcGluQXV0aCB9KTsKICAgICBlbHNlCiAgICAgICAgIGNib3JDbWQgPSBlbmNvZGVNYWtl
Q3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IocmVxdWVzdERhdGEoKS5oYXNoLCBvcHRpb25zLCBpbnRl
cm5hbFVWQXZhaWxhYmlsaXR5KTsKLSAgICBkcml2ZXIoKS50cmFuc2FjdChXVEZNb3ZlKGNib3JD
bWQpLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyldKFZlY3Rvcjx1aW50OF90PiYmIGRh
dGEpIHsKKyAgICBkcml2ZXIoKS50cmFuc2FjdChXVEZNb3ZlKGNib3JDbWQpLCBbd2Vha1RoaXMg
PSBXZWFrUHRyIHsgKnRoaXMgfV0oVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSkgewogICAgICAgICBB
U1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAg
ICAgICAgcmV0dXJuOwpAQCAtMTQ3LDcgKzE0Nyw3IEBAIHZvaWQgQ3RhcEF1dGhlbnRpY2F0b3I6
OmdldEFzc2VydGlvbigpCiAgICAgICAgIGNib3JDbWQgPSBlbmNvZGVHZXRBc3NlcnRpb25SZXF1
ZXN0QXNDQk9SKHJlcXVlc3REYXRhKCkuaGFzaCwgb3B0aW9ucywgaW50ZXJuYWxVVkF2YWlsYWJp
bGl0eSwgUGluUGFyYW1ldGVycyB7IHBpbjo6a1Byb3RvY29sVmVyc2lvbiwgbV9waW5BdXRoIH0p
OwogICAgIGVsc2UKICAgICAgICAgY2JvckNtZCA9IGVuY29kZUdldEFzc2VydGlvblJlcXVlc3RB
c0NCT1IocmVxdWVzdERhdGEoKS5oYXNoLCBvcHRpb25zLCBpbnRlcm5hbFVWQXZhaWxhYmlsaXR5
KTsKLSAgICBkcml2ZXIoKS50cmFuc2FjdChXVEZNb3ZlKGNib3JDbWQpLCBbd2Vha1RoaXMgPSBt
YWtlV2Vha1B0cigqdGhpcyldKFZlY3Rvcjx1aW50OF90PiYmIGRhdGEpIHsKKyAgICBkcml2ZXIo
KS50cmFuc2FjdChXVEZNb3ZlKGNib3JDbWQpLCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMg
fV0oVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSkgewogICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNN
YWluKCkpOwogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAt
MTg2LDcgKzE4Niw3IEBAIHZvaWQgQ3RhcEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlR2V0QXNzZXJ0
aW9uQWZ0ZXJSZXNwb25zZVJlY2VpdmVkKFZlY3Rvcjx1aW50OF90CiAgICAgbV9yZW1haW5pbmdB
c3NlcnRpb25SZXNwb25zZXMgPSByZXNwb25zZS0+bnVtYmVyT2ZDcmVkZW50aWFscygpIC0gMTsK
ICAgICBtX2Fzc2VydGlvblJlc3BvbnNlcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHJlc3BvbnNl
LT5udW1iZXJPZkNyZWRlbnRpYWxzKCkpOwogICAgIG1fYXNzZXJ0aW9uUmVzcG9uc2VzLnVuY2hl
Y2tlZEFwcGVuZChyZXNwb25zZS5yZWxlYXNlTm9uTnVsbCgpKTsKLSAgICBkcml2ZXIoKS50cmFu
c2FjdChlbmNvZGVFbXB0eUF1dGhlbnRpY2F0b3JSZXF1ZXN0KEN0YXBSZXF1ZXN0Q29tbWFuZDo6
a0F1dGhlbnRpY2F0b3JHZXROZXh0QXNzZXJ0aW9uKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIo
KnRoaXMpXShWZWN0b3I8dWludDhfdD4mJiBkYXRhKSB7CisgICAgZHJpdmVyKCkudHJhbnNhY3Qo
ZW5jb2RlRW1wdHlBdXRoZW50aWNhdG9yUmVxdWVzdChDdGFwUmVxdWVzdENvbW1hbmQ6OmtBdXRo
ZW50aWNhdG9yR2V0TmV4dEFzc2VydGlvbiksIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9
XShWZWN0b3I8dWludDhfdD4mJiBkYXRhKSB7CiAgICAgICAgIEFTU0VSVChSdW5Mb29wOjppc01h
aW4oKSk7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0y
MTIsNyArMjEyLDcgQEAgdm9pZCBDdGFwQXV0aGVudGljYXRvcjo6Y29udGludWVHZXROZXh0QXNz
ZXJ0aW9uQWZ0ZXJSZXNwb25zZVJlY2VpdmVkKFZlY3Rvcjx1aW4KICAgICAgICAgICAgIGZvciAo
YXV0byYgcmVzcG9uc2UgOiBtX2Fzc2VydGlvblJlc3BvbnNlcykKICAgICAgICAgICAgICAgICBy
ZXNwb25zZXNDb3B5LnVuY2hlY2tlZEFwcGVuZChyZXNwb25zZS5jb3B5UmVmKCkpOwogCi0gICAg
ICAgICAgICBvYnNlcnZlci0+c2VsZWN0QXNzZXJ0aW9uUmVzcG9uc2UoV1RGTW92ZShyZXNwb25z
ZXNDb3B5KSwgV2ViQXV0aGVudGljYXRpb25Tb3VyY2U6OkV4dGVybmFsLCBbdGhpcywgd2Vha1Ro
aXMgPSBtYWtlV2Vha1B0cigqdGhpcyldIChBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2Uq
IHJlc3BvbnNlKSB7CisgICAgICAgICAgICBvYnNlcnZlci0+c2VsZWN0QXNzZXJ0aW9uUmVzcG9u
c2UoV1RGTW92ZShyZXNwb25zZXNDb3B5KSwgV2ViQXV0aGVudGljYXRpb25Tb3VyY2U6OkV4dGVy
bmFsLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0gKEF1dGhlbnRpY2F0b3JB
c3NlcnRpb25SZXNwb25zZSogcmVzcG9uc2UpIHsKICAgICAgICAgICAgICAgICBBU1NFUlQoUnVu
TG9vcDo6aXNNYWluKCkpOwogICAgICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAg
ICAgICAgICAgICAgIHJldHVybjsKQEAgLTIyNyw3ICsyMjcsNyBAQCB2b2lkIEN0YXBBdXRoZW50
aWNhdG9yOjpjb250aW51ZUdldE5leHRBc3NlcnRpb25BZnRlclJlc3BvbnNlUmVjZWl2ZWQoVmVj
dG9yPHVpbgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgZHJpdmVyKCkudHJhbnNhY3Qo
ZW5jb2RlRW1wdHlBdXRoZW50aWNhdG9yUmVxdWVzdChDdGFwUmVxdWVzdENvbW1hbmQ6OmtBdXRo
ZW50aWNhdG9yR2V0TmV4dEFzc2VydGlvbiksIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlz
KV0oVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSkgeworICAgIGRyaXZlcigpLnRyYW5zYWN0KGVuY29k
ZUVtcHR5QXV0aGVudGljYXRvclJlcXVlc3QoQ3RhcFJlcXVlc3RDb21tYW5kOjprQXV0aGVudGlj
YXRvckdldE5leHRBc3NlcnRpb24pLCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0oVmVj
dG9yPHVpbnQ4X3Q+JiYgZGF0YSkgewogICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkp
OwogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMjM4LDcg
KzIzOCw3IEBAIHZvaWQgQ3RhcEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlR2V0TmV4dEFzc2VydGlv
bkFmdGVyUmVzcG9uc2VSZWNlaXZlZChWZWN0b3I8dWluCiB2b2lkIEN0YXBBdXRoZW50aWNhdG9y
OjpnZXRSZXRyaWVzKCkKIHsKICAgICBhdXRvIGNib3JDbWQgPSBlbmNvZGVBc0NCT1IocGluOjpS
ZXRyaWVzUmVxdWVzdCB7IH0pOwotICAgIGRyaXZlcigpLnRyYW5zYWN0KFdURk1vdmUoY2JvckNt
ZCksIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0oVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0
YSkgeworICAgIGRyaXZlcigpLnRyYW5zYWN0KFdURk1vdmUoY2JvckNtZCksIFt3ZWFrVGhpcyA9
IFdlYWtQdHIgeyAqdGhpcyB9XShWZWN0b3I8dWludDhfdD4mJiBkYXRhKSB7CiAgICAgICAgIEFT
U0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAg
ICAgICByZXR1cm47CkBAIC0yNTYsNyArMjU2LDcgQEAgdm9pZCBDdGFwQXV0aGVudGljYXRvcjo6
Y29udGludWVHZXRLZXlBZ3JlZW1lbnRBZnRlckdldFJldHJpZXMoVmVjdG9yPHVpbnQ4X3Q+JiYK
ICAgICB9CiAKICAgICBhdXRvIGNib3JDbWQgPSBlbmNvZGVBc0NCT1IocGluOjpLZXlBZ3JlZW1l
bnRSZXF1ZXN0IHsgfSk7Ci0gICAgZHJpdmVyKCkudHJhbnNhY3QoV1RGTW92ZShjYm9yQ21kKSwg
W3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCByZXRyaWVzID0gcmV0cmllcy0+cmV0cmll
c10gKFZlY3Rvcjx1aW50OF90PiYmIGRhdGEpIHsKKyAgICBkcml2ZXIoKS50cmFuc2FjdChXVEZN
b3ZlKGNib3JDbWQpLCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgcmV0cmllcyA9IHJl
dHJpZXMtPnJldHJpZXNdIChWZWN0b3I8dWludDhfdD4mJiBkYXRhKSB7CiAgICAgICAgIEFTU0VS
VChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAg
ICByZXR1cm47CkBAIC0yNzQsNyArMjc0LDcgQEAgdm9pZCBDdGFwQXV0aGVudGljYXRvcjo6Y29u
dGludWVSZXF1ZXN0UGluQWZ0ZXJHZXRLZXlBZ3JlZW1lbnQoVmVjdG9yPHVpbnQ4X3Q+JiYKICAg
ICB9CiAKICAgICBpZiAoYXV0byogb2JzZXJ2ZXIgPSB0aGlzLT5vYnNlcnZlcigpKSB7Ci0gICAg
ICAgIG9ic2VydmVyLT5yZXF1ZXN0UGluKHJldHJpZXMsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRy
KCp0aGlzKSwga2V5QWdyZWVtZW50ID0gV1RGTW92ZSgqa2V5QWdyZWVtZW50KV0gKGNvbnN0IFN0
cmluZyYgcGluKSB7CisgICAgICAgIG9ic2VydmVyLT5yZXF1ZXN0UGluKHJldHJpZXMsIFt3ZWFr
VGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBrZXlBZ3JlZW1lbnQgPSBXVEZNb3ZlKCprZXlBZ3Jl
ZW1lbnQpXSAoY29uc3QgU3RyaW5nJiBwaW4pIHsKICAgICAgICAgICAgIEFTU0VSVChSdW5Mb29w
Ojppc01haW4oKSk7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgICAg
IHJldHVybjsKQEAgLTMwNSw3ICszMDUsNyBAQCB2b2lkIEN0YXBBdXRoZW50aWNhdG9yOjpjb250
aW51ZUdldFBpblRva2VuQWZ0ZXJSZXF1ZXN0UGluKGNvbnN0IFN0cmluZyYgcGluLCBjbwogICAg
IH0KIAogICAgIGF1dG8gY2JvckNtZCA9IGVuY29kZUFzQ0JPUigqdG9rZW5SZXF1ZXN0KTsKLSAg
ICBkcml2ZXIoKS50cmFuc2FjdChXVEZNb3ZlKGNib3JDbWQpLCBbd2Vha1RoaXMgPSBtYWtlV2Vh
a1B0cigqdGhpcyksIHRva2VuUmVxdWVzdCA9IFdURk1vdmUoKnRva2VuUmVxdWVzdCldIChWZWN0
b3I8dWludDhfdD4mJiBkYXRhKSB7CisgICAgZHJpdmVyKCkudHJhbnNhY3QoV1RGTW92ZShjYm9y
Q21kKSwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHRva2VuUmVxdWVzdCA9IFdURk1v
dmUoKnRva2VuUmVxdWVzdCldIChWZWN0b3I8dWludDhfdD4mJiBkYXRhKSB7CiAgICAgICAgIEFT
U0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAg
ICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9maWRvL0N0YXBIaWREcml2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9DdGFwSGlkRHJpdmVyLmNwcAppbmRleCA1Y2JhNGJl
M2YyZmQ5YzRlOGExY2Q1MGY5MWQwYjk0ZGY2ZWIxNGY4Li4zZDZlYTQ0Y2I5ZDU2M2U5Zjc4N2I5
ZjZiMDc5NzViMWMxYzZlMmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9maWRvL0N0YXBIaWREcml2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vQ3RhcEhpZERyaXZlci5jcHAKQEAg
LTU4LDcgKzU4LDcgQEAgdm9pZCBDdGFwSGlkRHJpdmVyOjpXb3JrZXI6OnRyYW5zYWN0KGZpZG86
OkZpZG9IaWRNZXNzYWdlJiYgcmVxdWVzdE1lc3NhZ2UsIE1lc3MKIAogICAgIC8vIEhpZENvbm5l
Y3Rpb24gY291bGQgaG9sZCBkYXRhIGZyb20gb3RoZXIgYXBwbGljYXRpb25zLCBhbmQgdGhlcmVv
Zm9yZSBpbnZhbGlkYXRlIGl0IGJlZm9yZSBlYWNoIHRyYW5zYWN0aW9uLgogICAgIG1fY29ubmVj
dGlvbi0+aW52YWxpZGF0ZUNhY2hlKCk7Ci0gICAgbV9jb25uZWN0aW9uLT5zZW5kKG1fcmVxdWVz
dE1lc3NhZ2UtPnBvcE5leHRQYWNrZXQoKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMp
XShIaWRDb25uZWN0aW9uOjpEYXRhU2VudCBzZW50KSBtdXRhYmxlIHsKKyAgICBtX2Nvbm5lY3Rp
b24tPnNlbmQobV9yZXF1ZXN0TWVzc2FnZS0+cG9wTmV4dFBhY2tldCgpLCBbd2Vha1RoaXMgPSBX
ZWFrUHRyIHsgKnRoaXMgfV0oSGlkQ29ubmVjdGlvbjo6RGF0YVNlbnQgc2VudCkgbXV0YWJsZSB7
CiAgICAgICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgICAgIGlmICghd2Vha1Ro
aXMpCiAgICAgICAgICAgICByZXR1cm47CkBAIC03OCw3ICs3OCw3IEBAIHZvaWQgQ3RhcEhpZERy
aXZlcjo6V29ya2VyOjp3cml0ZShIaWRDb25uZWN0aW9uOjpEYXRhU2VudCBzZW50KQogCiAgICAg
aWYgKCFtX3JlcXVlc3RNZXNzYWdlLT5udW1QYWNrZXRzKCkpIHsKICAgICAgICAgbV9zdGF0ZSA9
IFN0YXRlOjpSZWFkOwotICAgICAgICBtX2Nvbm5lY3Rpb24tPnJlZ2lzdGVyRGF0YVJlY2VpdmVk
Q2FsbGJhY2soW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXShWZWN0b3I8dWludDhfdD4m
JiBkYXRhKSBtdXRhYmxlIHsKKyAgICAgICAgbV9jb25uZWN0aW9uLT5yZWdpc3RlckRhdGFSZWNl
aXZlZENhbGxiYWNrKFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XShWZWN0b3I8dWludDhf
dD4mJiBkYXRhKSBtdXRhYmxlIHsKICAgICAgICAgICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4o
KSk7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgICAgIHJldHVybjsK
QEAgLTg3LDcgKzg3LDcgQEAgdm9pZCBDdGFwSGlkRHJpdmVyOjpXb3JrZXI6OndyaXRlKEhpZENv
bm5lY3Rpb246OkRhdGFTZW50IHNlbnQpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBt
X2Nvbm5lY3Rpb24tPnNlbmQobV9yZXF1ZXN0TWVzc2FnZS0+cG9wTmV4dFBhY2tldCgpLCBbd2Vh
a1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyldKEhpZENvbm5lY3Rpb246OkRhdGFTZW50IHNlbnQp
IG11dGFibGUgeworICAgIG1fY29ubmVjdGlvbi0+c2VuZChtX3JlcXVlc3RNZXNzYWdlLT5wb3BO
ZXh0UGFja2V0KCksIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XShIaWRDb25uZWN0aW9u
OjpEYXRhU2VudCBzZW50KSBtdXRhYmxlIHsKICAgICAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFp
bigpKTsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE4
Miw3ICsxODIsNyBAQCB2b2lkIEN0YXBIaWREcml2ZXI6OnRyYW5zYWN0KFZlY3Rvcjx1aW50OF90
PiYmIGRhdGEsIFJlc3BvbnNlQ2FsbGJhY2smJiBjYWxsYmFjawogCiAgICAgYXV0byBpbml0Q29t
bWFuZCA9IEZpZG9IaWRNZXNzYWdlOjpjcmVhdGUobV9jaGFubmVsSWQsIEZpZG9IaWREZXZpY2VD
b21tYW5kOjprSW5pdCwgbV9ub25jZSk7CiAgICAgQVNTRVJUKGluaXRDb21tYW5kKTsKLSAgICBt
X3dvcmtlci0+dHJhbnNhY3QoV1RGTW92ZSgqaW5pdENvbW1hbmQpLCBbd2Vha1RoaXMgPSBtYWtl
V2Vha1B0cigqdGhpcyldKHN0ZDo6b3B0aW9uYWw8Rmlkb0hpZE1lc3NhZ2U+JiYgcmVzcG9uc2Up
IG11dGFibGUgeworICAgIG1fd29ya2VyLT50cmFuc2FjdChXVEZNb3ZlKCppbml0Q29tbWFuZCks
IFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XShzdGQ6Om9wdGlvbmFsPEZpZG9IaWRNZXNz
YWdlPiYmIHJlc3BvbnNlKSBtdXRhYmxlIHsKICAgICAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFp
bigpKTsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKQEAgLTIw
NSw3ICsyMDUsNyBAQCB2b2lkIEN0YXBIaWREcml2ZXI6OmNvbnRpbnVlQWZ0ZXJDaGFubmVsQWxs
b2NhdGVkKHN0ZDo6b3B0aW9uYWw8Rmlkb0hpZE1lc3NhZ2U+JgogICAgIC8vIFJlc3RhcnQgdGhl
IHRyYW5zYWN0aW9uIGluIHRoZSBuZXh0IHJ1biBsb29wIHdoZW4gbm9uY2UgbWlzbWF0Y2hlcy4K
ICAgICBpZiAobWVtY21wKHBheWxvYWQuZGF0YSgpLCBtX25vbmNlLmRhdGEoKSwgbV9ub25jZS5z
aXplKCkpKSB7CiAgICAgICAgIG1fc3RhdGUgPSBTdGF0ZTo6SWRsZTsKLSAgICAgICAgUnVuTG9v
cDo6bWFpbigpLmRpc3BhdGNoKFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgZGF0YSA9
IFdURk1vdmUobV9yZXF1ZXN0RGF0YSksIGNhbGxiYWNrID0gV1RGTW92ZShtX3Jlc3BvbnNlQ2Fs
bGJhY2spXSgpIG11dGFibGUgeworICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3dl
YWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGRhdGEgPSBXVEZNb3ZlKG1fcmVxdWVzdERhdGEp
LCBjYWxsYmFjayA9IFdURk1vdmUobV9yZXNwb25zZUNhbGxiYWNrKV0oKSBtdXRhYmxlIHsKICAg
ICAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICAgICAgd2Vha1RoaXMtPnRyYW5zYWN0KFdURk1vdmUoZGF0YSksIFdURk1vdmUoY2FsbGJhY2sp
KTsKQEAgLTIyMiw3ICsyMjIsNyBAQCB2b2lkIEN0YXBIaWREcml2ZXI6OmNvbnRpbnVlQWZ0ZXJD
aGFubmVsQWxsb2NhdGVkKHN0ZDo6b3B0aW9uYWw8Rmlkb0hpZE1lc3NhZ2U+JgogICAgIC8vIEZJ
WE1FKDE5MTUzNCk6IENoZWNrIHRoZSByZXN0IG9mIHRoZSBwYXlsb2FkLgogICAgIGF1dG8gY21k
ID0gRmlkb0hpZE1lc3NhZ2U6OmNyZWF0ZShtX2NoYW5uZWxJZCwgcHJvdG9jb2woKSA9PSBQcm90
b2NvbFZlcnNpb246OmtDdGFwID8gRmlkb0hpZERldmljZUNvbW1hbmQ6OmtDYm9yIDogRmlkb0hp
ZERldmljZUNvbW1hbmQ6OmtNc2csIG1fcmVxdWVzdERhdGEpOwogICAgIEFTU0VSVChjbWQpOwot
ICAgIG1fd29ya2VyLT50cmFuc2FjdChXVEZNb3ZlKCpjbWQpLCBbd2Vha1RoaXMgPSBtYWtlV2Vh
a1B0cigqdGhpcyldKHN0ZDo6b3B0aW9uYWw8Rmlkb0hpZE1lc3NhZ2U+JiYgcmVzcG9uc2UpIG11
dGFibGUgeworICAgIG1fd29ya2VyLT50cmFuc2FjdChXVEZNb3ZlKCpjbWQpLCBbd2Vha1RoaXMg
PSBXZWFrUHRyIHsgKnRoaXMgfV0oc3RkOjpvcHRpb25hbDxGaWRvSGlkTWVzc2FnZT4mJiByZXNw
b25zZSkgbXV0YWJsZSB7CiAgICAgICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAg
ICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL0ZpZG9TZXJ2aWNlLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vRmlkb1Nl
cnZpY2UuY3BwCmluZGV4IDFiNTY1NGI4YzUxNjAyMzUyZWEzN2I3NDc2NDRhOTQyYTU1MTM0NGMu
LjQ4YjlkMmYwN2FlYjZkNTdhNjdmNzVjOWYxMWMzNDU3OTRkMDY1NTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vRmlkb1NlcnZpY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8v
Rmlkb1NlcnZpY2UuY3BwCkBAIC00OSw3ICs0OSw3IEBAIEZpZG9TZXJ2aWNlOjpGaWRvU2Vydmlj
ZShPYnNlcnZlciYgb2JzZXJ2ZXIpCiB2b2lkIEZpZG9TZXJ2aWNlOjpnZXRJbmZvKHN0ZDo6dW5p
cXVlX3B0cjxDdGFwRHJpdmVyPiYmIGRyaXZlcikKIHsKICAgICAvLyBHZXQgYXV0aGVudGljYXRv
ciBpbmZvIGZyb20gdGhlIGRldmljZS4KLSAgICBkcml2ZXItPnRyYW5zYWN0KGVuY29kZUVtcHR5
QXV0aGVudGljYXRvclJlcXVlc3QoQ3RhcFJlcXVlc3RDb21tYW5kOjprQXV0aGVudGljYXRvckdl
dEluZm8pLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHdlYWtEcml2ZXIgPSBtYWtl
V2Vha1B0cigqZHJpdmVyKV0gKFZlY3Rvcjx1aW50OF90PiYmIHJlc3BvbnNlKSBtdXRhYmxlIHsK
KyAgICBkcml2ZXItPnRyYW5zYWN0KGVuY29kZUVtcHR5QXV0aGVudGljYXRvclJlcXVlc3QoQ3Rh
cFJlcXVlc3RDb21tYW5kOjprQXV0aGVudGljYXRvckdldEluZm8pLCBbd2Vha1RoaXMgPSBXZWFr
UHRyIHsgKnRoaXMgfSwgd2Vha0RyaXZlciA9IG1ha2VXZWFrUHRyKCpkcml2ZXIpXSAoVmVjdG9y
PHVpbnQ4X3Q+JiYgcmVzcG9uc2UpIG11dGFibGUgewogICAgICAgICBBU1NFUlQoUnVuTG9vcDo6
aXNNYWluKCkpOwogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlk
by9VMmZBdXRoZW50aWNhdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL2ZpZG8vVTJmQXV0aGVudGljYXRvci5jcHAKaW5kZXggNWE2YmRjMjViMmY3ODVl
MzhkNDBlMzE5NTFkODFmMzBiM2IyZDQ3Ni4uMDg4MDZjZjRlNmJmZmNlNzk3MzljM2Y0Yzk3ZDMz
NmVkN2Q2MDI3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vZmlkby9VMmZBdXRoZW50aWNhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL1UyZkF1dGhlbnRpY2F0b3IuY3BwCkBAIC0x
MTgsNyArMTE4LDcgQEAgdm9pZCBVMmZBdXRoZW50aWNhdG9yOjppc3N1ZU5ld0NvbW1hbmQoVmVj
dG9yPHVpbnQ4X3Q+JiYgY29tbWFuZCwgQ29tbWFuZFR5cGUgdHkKIAogdm9pZCBVMmZBdXRoZW50
aWNhdG9yOjppc3N1ZUNvbW1hbmQoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBjb21tYW5kLCBDb21t
YW5kVHlwZSB0eXBlKQogewotICAgIGRyaXZlcigpLnRyYW5zYWN0KFZlY3Rvcjx1aW50OF90Pihj
b21tYW5kKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0eXBlXShWZWN0b3I8dWlu
dDhfdD4mJiBkYXRhKSB7CisgICAgZHJpdmVyKCkudHJhbnNhY3QoVmVjdG9yPHVpbnQ4X3Q+KGNv
bW1hbmQpLCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgdHlwZV0oVmVjdG9yPHVpbnQ4
X3Q+JiYgZGF0YSkgewogICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgICAg
ICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggYTk2YWJhNzM5MmQ1NjJhOGE3NGNkZWY5Mzk1ZTAx
YTcyMDljOWY0Zi4uYzJiYTI2NWZmNjc3MjI2NjE2OGM0ZTU4MzAwNjcwNTE5YzNhNzlkMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xMjI0LDcgKzEyMjQs
NyBAQCBib29sIFdlYlBhZ2VQcm94eTo6dHJ5Q2xvc2UoKQogICAgICAgICByZXR1cm4gdHJ1ZTsK
IAogICAgIG1fdHJ5Q2xvc2VUaW1lb3V0VGltZXIuc3RhcnRPbmVTaG90KHRyeUNsb3NlVGltZW91
dERlbGF5KTsKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6OlRyeUNs
b3NlKCksIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0oYm9vbCBzaG91bGRD
bG9zZSkgeworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZTo6VHJ5Q2xv
c2UoKSwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dKGJvb2wgc2hvdWxkQ2xv
c2UpIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKIApAQCAt
MjAyOSw3ICsyMDI5LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldFVuZGVyUGFnZUJhY2tncm91
bmRDb2xvck92ZXJyaWRlKENvbG9yJiYgbmV3VW5kZXJQYWdlQmFja2cKIAogICAgIG1faGFzUGVu
ZGluZ1VuZGVyUGFnZUJhY2tncm91bmRDb2xvck92ZXJyaWRlVG9EaXNwYXRjaCA9IHRydWU7CiAK
LSAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQ
dHIoKnRoaXMpXSB7CisgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt0aGlzLCB3ZWFrVGhp
cyA9IFdlYWtQdHIgeyAqdGhpcyB9XSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAg
ICAgICByZXR1cm47CiAKQEAgLTMxOTksNyArMzE5OSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpo
YW5kbGVQcmV2ZW50YWJsZVRvdWNoRXZlbnQoTmF0aXZlV2ViVG91Y2hFdmVudCYgZXZlbnQpCiAg
ICAgICAgIGlmIChpc1RvdWNoRW5kKQogICAgICAgICAgICAgKyttX2hhbmRsaW5nUHJldmVudGFi
bGVUb3VjaEVuZENvdW50OwogCi0gICAgICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
RXZlbnREaXNwYXRjaGVyOjpUb3VjaEV2ZW50KG1fd2ViUGFnZUlELCBldmVudCksIFt0aGlzLCB3
ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgZXZlbnRdIChib29sIGhhbmRsZWQpIHsKKyAg
ICAgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpFdmVudERpc3BhdGNoZXI6OlRvdWNo
RXZlbnQobV93ZWJQYWdlSUQsIGV2ZW50KSwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0
aGlzIH0sIGV2ZW50XSAoYm9vbCBoYW5kbGVkKSB7CiAgICAgICAgICAgICBSZWZQdHIgcHJvdGVj
dGVkVGhpcyB7IHdlYWtUaGlzLmdldCgpIH07CiAgICAgICAgICAgICBpZiAoIXByb3RlY3RlZFRo
aXMpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtMzU1OSw3ICszNTU5LDcgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OnJlY2VpdmVkUG9saWN5RGVjaXNpb24oUG9saWN5QWN0aW9uIGFjdGlvbiwg
QVBJOjpOYXZpZ2F0aW9uKgogICAgIGlmIChhY3Rpb24gPT0gUG9saWN5QWN0aW9uOjpEb3dubG9h
ZCkgewogICAgICAgICAvLyBDcmVhdGUgYSBkb3dubG9hZCBwcm94eS4KICAgICAgICAgYXV0byYg
ZG93bmxvYWQgPSBtX3Byb2Nlc3MtPnByb2Nlc3NQb29sKCkuY3JlYXRlRG93bmxvYWRQcm94eSht
X3dlYnNpdGVEYXRhU3RvcmUsIG1fZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VSZXF1ZXN0LCB0aGlz
LCBuYXZpZ2F0aW9uID8gbmF2aWdhdGlvbi0+b3JpZ2luYXRpbmdGcmFtZUluZm8oKSA6IEZyYW1l
SW5mb0RhdGEgeyB9KTsKLSAgICAgICAgZG93bmxvYWQuc2V0RGlkU3RhcnRDYWxsYmFjayhbdGhp
cywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIG5hdmlnYXRpb25BY3Rpb25PclJlc3Bv
bnNlID0gV1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9uT3JSZXNwb25zZSldIChhdXRvKiBkb3dubG9h
ZFByb3h5KSB7CisgICAgICAgIGRvd25sb2FkLnNldERpZFN0YXJ0Q2FsbGJhY2soW3RoaXMsIHdl
YWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIG5hdmlnYXRpb25BY3Rpb25PclJlc3BvbnNlID0g
V1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9uT3JSZXNwb25zZSldIChhdXRvKiBkb3dubG9hZFByb3h5
KSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICFkb3dubG9hZFByb3h5KQogICAgICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIFdURjo6c3dpdGNoT24obmF2aWdhdGlvbkFj
dGlvbk9yUmVzcG9uc2UsCkBAIC01ODkzLDcgKzU4OTMsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
Y2xvc2VQYWdlKCkKIAogdm9pZCBXZWJQYWdlUHJveHk6OnJ1bk1vZGFsSmF2YVNjcmlwdERpYWxv
ZyhSZWZQdHI8V2ViRnJhbWVQcm94eT4mJiBmcmFtZSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5m
bywgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYlBhZ2VQ
cm94eSYsIFdlYkZyYW1lUHJveHkqIGZyYW1lLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvLCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik+JiYgcnVu
RGlhbG9nQ2FsbGJhY2spCiB7Ci0gICAgcGFnZUNsaWVudCgpLnJ1bk1vZGFsSmF2YVNjcmlwdERp
YWxvZyhbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIGZyYW1lSW5mbyA9IFdURk1vdmUo
ZnJhbWVJbmZvKSwgZnJhbWUgPSBXVEZNb3ZlKGZyYW1lKSwgbWVzc2FnZSwgcnVuRGlhbG9nQ2Fs
bGJhY2sgPSBXVEZNb3ZlKHJ1bkRpYWxvZ0NhbGxiYWNrKV0oKSBtdXRhYmxlIHsKKyAgICBwYWdl
Q2xpZW50KCkucnVuTW9kYWxKYXZhU2NyaXB0RGlhbG9nKFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAq
dGhpcyB9LCBmcmFtZUluZm8gPSBXVEZNb3ZlKGZyYW1lSW5mbyksIGZyYW1lID0gV1RGTW92ZShm
cmFtZSksIG1lc3NhZ2UsIHJ1bkRpYWxvZ0NhbGxiYWNrID0gV1RGTW92ZShydW5EaWFsb2dDYWxs
YmFjayldKCkgbXV0YWJsZSB7CiAgICAgICAgIFJlZlB0ciBwcm90ZWN0ZWRUaGlzIHsgd2Vha1Ro
aXMuZ2V0KCkgfTsKICAgICAgICAgaWYgKCFwcm90ZWN0ZWRUaGlzKQogICAgICAgICAgICAgcmV0
dXJuOwpAQCAtNjEzMiw3ICs2MTMyLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJ1bkJlZm9yZVVu
bG9hZENvbmZpcm1QYW5lbChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmYKICAgICBi
b29sIHNob3VsZFJlc3VtZVRpbWVyQWZ0ZXJQcm9tcHQgPSBtX3RyeUNsb3NlVGltZW91dFRpbWVy
LmlzQWN0aXZlKCk7CiAgICAgbV90cnlDbG9zZVRpbWVvdXRUaW1lci5zdG9wKCk7CiAgICAgbV91
aUNsaWVudC0+cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCp0aGlzLCBtZXNzYWdlLCBmcmFt
ZSwgV1RGTW92ZShmcmFtZUluZm8pLAotICAgICAgICBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vh
a1B0cigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShyZXBseSksIHNob3VsZFJl
c3VtZVRpbWVyQWZ0ZXJQcm9tcHRdKGJvb2wgc2hvdWxkQ2xvc2UpIG11dGFibGUgeworICAgICAg
ICBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKHJlcGx5KSwgc2hvdWxkUmVzdW1lVGltZXJBZnRlclByb21wdF0oYm9vbCBzaG91
bGRDbG9zZSkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAod2Vha1RoaXMgJiYgc2hvdWxkUmVz
dW1lVGltZXJBZnRlclByb21wdCkKICAgICAgICAgICAgICAgICBtX3RyeUNsb3NlVGltZW91dFRp
bWVyLnN0YXJ0T25lU2hvdCh0cnlDbG9zZVRpbWVvdXREZWxheSk7CiAgICAgICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihzaG91bGRDbG9zZSk7CkBAIC03MDE3LDcgKzcwMTcsNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoY29uc3QgV2ViQ29udGV4dE1lbnVJ
dGVtRGF0YSYgaXRlbSkKIAogICAgIGlmIChkb3dubG9hZEluZm8pIHsKICAgICAgICAgYXV0byYg
ZG93bmxvYWQgPSBtX3Byb2Nlc3MtPnByb2Nlc3NQb29sKCkuZG93bmxvYWQobV93ZWJzaXRlRGF0
YVN0b3JlLCB0aGlzLCBVUkwoVVJMKCksIGRvd25sb2FkSW5mby0+dXJsKSwgZG93bmxvYWRJbmZv
LT5zdWdnZXN0ZWRGaWxlbmFtZSk7Ci0gICAgICAgIGRvd25sb2FkLnNldERpZFN0YXJ0Q2FsbGJh
Y2soW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSAoYXV0byogZG93bmxvYWQp
IHsKKyAgICAgICAgZG93bmxvYWQuc2V0RGlkU3RhcnRDYWxsYmFjayhbdGhpcywgd2Vha1RoaXMg
PSBXZWFrUHRyIHsgKnRoaXMgfV0gKGF1dG8qIGRvd25sb2FkKSB7CiAgICAgICAgICAgICBpZiAo
IXdlYWtUaGlzIHx8ICFkb3dubG9hZCkKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
ICAgICBtX25hdmlnYXRpb25DbGllbnQtPmNvbnRleHRNZW51RGlkQ3JlYXRlRG93bmxvYWQoKnRo
aXMsICpkb3dubG9hZCk7CkBAIC0xMDg3NCw3ICsxMDg3NCw3IEBAIFZlY3RvcjxTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGU+IFdlYlBhZ2VQcm94eTo6Y3JlYXRlTmV0d29ya0V4dGVuc2lvbnNTYW5k
Ym94RXh0CiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05fQ09PUkRJTkFUT1IpCiB2b2lkIFdlYlBh
Z2VQcm94eTo6Y3JlYXRlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoUmVmPE1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yUHJveHlQcml2YXRlPiYmIHByaXZhdGVDb29yZGluYXRvciwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBzZW5kV2l0aEFz
eW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6OkNyZWF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
KHByaXZhdGVDb29yZGluYXRvci0+aWRlbnRpZmllcigpKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQ
dHIoKnRoaXMpLCBwcml2YXRlQ29vcmRpbmF0b3IgPSBXVEZNb3ZlKHByaXZhdGVDb29yZGluYXRv
ciksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGJvb2wg
c3VjY2VzcykgbXV0YWJsZSB7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQ
YWdlOjpDcmVhdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcihwcml2YXRlQ29vcmRpbmF0b3ItPmlk
ZW50aWZpZXIoKSksIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBwcml2YXRlQ29vcmRp
bmF0b3IgPSBXVEZNb3ZlKHByaXZhdGVDb29yZGluYXRvciksIGNvbXBsZXRpb25IYW5kbGVyID0g
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGJvb2wgc3VjY2VzcykgbXV0YWJsZSB7CiAKICAg
ICAgICAgaWYgKCF3ZWFrVGhpcyB8fCAhc3VjY2VzcykgewogICAgICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
Y3BwCmluZGV4IDNmZDQyZWE3YTJlZmIyZGE5NDJjOWJhYTM3ZTU3N2Y3YTFiNzI3ZGQuLjg1Njk4
ZjViZjgzMGViOTQ3YjU5YTcyMmU5MTY4ZjUyNzIyOTIwOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTQ2OCw3ICs0NjgsNyBAQCB2b2lkIFdlYlBy
b2Nlc3NQb29sOjpnZXRHUFVQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmIHdlYlBy
b2Nlc3NQcm94eSwgRwogI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCiAgICAgcGFyYW1ldGVy
cy5pZ25vcmVJbnZhbGlkTWVzc2FnZUZvclRlc3RpbmcgPSB3ZWJQcm9jZXNzUHJveHkuaWdub3Jl
SW52YWxpZE1lc3NhZ2VGb3JUZXN0aW5nKCk7CiAjZW5kaWYKLSAgICBlbnN1cmVHUFVQcm9jZXNz
KCkuZ2V0R1BVUHJvY2Vzc0Nvbm5lY3Rpb24od2ViUHJvY2Vzc1Byb3h5LCBwYXJhbWV0ZXJzLCBb
dGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHBhcmFtZXRlcnMsIHdlYlByb2Nl
c3NQcm94eSA9IG1ha2VXZWFrUHRyKHdlYlByb2Nlc3NQcm94eSksIHJlcGx5ID0gV1RGTW92ZShy
ZXBseSldIChhdXRvJiBjb25uZWN0aW9uSW5mbykgbXV0YWJsZSB7CisgICAgZW5zdXJlR1BVUHJv
Y2VzcygpLmdldEdQVVByb2Nlc3NDb25uZWN0aW9uKHdlYlByb2Nlc3NQcm94eSwgcGFyYW1ldGVy
cywgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHBhcmFtZXRlcnMsIHdlYlBy
b2Nlc3NQcm94eSA9IG1ha2VXZWFrUHRyKHdlYlByb2Nlc3NQcm94eSksIHJlcGx5ID0gV1RGTW92
ZShyZXBseSldIChhdXRvJiBjb25uZWN0aW9uSW5mbykgbXV0YWJsZSB7CiAgICAgICAgIGlmIChV
TkxJS0VMWSghSVBDOjpDb25uZWN0aW9uOjppZGVudGlmaWVySXNWYWxpZChjb25uZWN0aW9uSW5m
by5pZGVudGlmaWVyKCkpKSkgewogICAgICAgICAgICAgLy8gUmV0cnkgb24gdGhlIG5leHQgUnVu
TG9vcCBpdGVyYXRpb24gYmVjYXVzZSB3ZSBtYXkgYmUgaW5zaWRlIHRoZSBXZWJQcm9jZXNzUG9v
bCBkZXN0cnVjdG9yLgogICAgICAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt0aGlz
LCB3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCB3ZWJQcm9jZXNzUHJveHkgPSBXVEZNb3Zl
KHdlYlByb2Nlc3NQcm94eSksIHBhcmFtZXRlcnMgPSBXVEZNb3ZlKHBhcmFtZXRlcnMpLCByZXBs
eSA9IFdURk1vdmUocmVwbHkpXSAoKSBtdXRhYmxlIHsKQEAgLTQ4OCw3ICs0ODgsNyBAQCB2b2lk
IFdlYlByb2Nlc3NQb29sOjpnZXRHUFVQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkm
IHdlYlByb2Nlc3NQcm94eSwgRwogI2lmIEVOQUJMRShXRUJfQVVUSE4pCiB2b2lkIFdlYlByb2Nl
c3NQb29sOjpnZXRXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYgd2Vi
UHJvY2Vzc1Byb3h5LCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRXZWJBdXRoblByb2Nl
c3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJiByZXBseSkKIHsKLSAgICBXZWJBdXRoblByb2Nl
c3NQcm94eTo6c2luZ2xldG9uKCkuZ2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbih3ZWJQcm9j
ZXNzUHJveHksIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgd2ViUHJvY2Vz
c1Byb3h5ID0gbWFrZVdlYWtQdHIod2ViUHJvY2Vzc1Byb3h5KSwgcmVwbHkgPSBXVEZNb3ZlKHJl
cGx5KV0gKGF1dG8mIGNvbm5lY3Rpb25JbmZvKSBtdXRhYmxlIHsKKyAgICBXZWJBdXRoblByb2Nl
c3NQcm94eTo6c2luZ2xldG9uKCkuZ2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbih3ZWJQcm9j
ZXNzUHJveHksIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB3ZWJQcm9jZXNz
UHJveHkgPSBtYWtlV2Vha1B0cih3ZWJQcm9jZXNzUHJveHkpLCByZXBseSA9IFdURk1vdmUocmVw
bHkpXSAoYXV0byYgY29ubmVjdGlvbkluZm8pIG11dGFibGUgewogICAgICAgICBpZiAoVU5MSUtF
TFkoIUlQQzo6Q29ubmVjdGlvbjo6aWRlbnRpZmllcklzVmFsaWQoY29ubmVjdGlvbkluZm8uaWRl
bnRpZmllcigpKSAmJiB3ZWJQcm9jZXNzUHJveHkgJiYgd2Vha1RoaXMpKSB7CiAgICAgICAgICAg
ICBXRUJQUk9DRVNTUE9PTF9SRUxFQVNFX0xPR19FUlJPUihQcm9jZXNzLCAiZ2V0V2ViQXV0aG5Q
cm9jZXNzQ29ubmVjdGlvbjogRmFpbGVkIGZpcnN0IGF0dGVtcHQsIHJldHJ5aW5nIik7CiAgICAg
ICAgICAgICBXZWJBdXRoblByb2Nlc3NQcm94eTo6c2luZ2xldG9uKCkuZ2V0V2ViQXV0aG5Qcm9j
ZXNzQ29ubmVjdGlvbigqd2ViUHJvY2Vzc1Byb3h5LCBXVEZNb3ZlKHJlcGx5KSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAwYzM4YTQ3MjM2ZmI3
MjBiZjY0ZTQzYjkzMjA1Y2M2MDM3ZGEwM2Q2Li5iNjEyMTlhMjI4OWU0ZGU5MDBkOGY0MzlhZGI5
MTA4ZDY0ZTg2NzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAKQEAgLTE1NzAsNyArMTU3MCw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojppc1Jlc3Bv
bnNpdmUoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIGlzV2ViUHJvY2Vzc1Jlc3BvCiAgICAg
aWYgKGNhbGxiYWNrKQogICAgICAgICBtX2lzUmVzcG9uc2l2ZUNhbGxiYWNrcy5hcHBlbmQoV1RG
TW92ZShjYWxsYmFjaykpOwogCi0gICAgY2hlY2tGb3JSZXNwb25zaXZlbmVzcyhbd2Vha1RoaXMg
PSBtYWtlV2Vha1B0cigqdGhpcyldKCkgbXV0YWJsZSB7CisgICAgY2hlY2tGb3JSZXNwb25zaXZl
bmVzcyhbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0oKSBtdXRhYmxlIHsKICAgICAgICAg
aWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMTU4Nyw3ICsxNTg3LDcg
QEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmlzUmVzcG9uc2l2ZVdpdGhMYXp5U3RvcCgpCiAgICAg
aWYgKCFyZXNwb25zaXZlbmVzc1RpbWVyKCkuaGFzQWN0aXZlVGltZXIoKSkgewogICAgICAgICAv
LyBXZSBkbyBub3Qgc2VuZCBhIHBpbmcgaWYgd2UgYXJlIGFscmVhZHkgd2FpdGluZyBmb3IgdGhl
IFdlYlByb2Nlc3MuCiAgICAgICAgIC8vIFNwYW1taW5nIHBpbmdzIG9uIGEgc2xvdyB3ZWIgcHJv
Y2VzcyBpcyBub3QgaGVscGZ1bC4KLSAgICAgICAgY2hlY2tGb3JSZXNwb25zaXZlbmVzcyhbd2Vh
a1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyldKCkgbXV0YWJsZSB7CisgICAgICAgIGNoZWNrRm9y
UmVzcG9uc2l2ZW5lc3MoW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dKCkgbXV0YWJsZSB7
CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgICAgIHJldHVybjsKIApA
QCAtMTg5NSw3ICsxODk1LDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmVzdGFibGlzaFNlcnZp
Y2VXb3JrZXJDb250ZXh0KGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHMKIHsKICAgICBXRUJQ
Uk9DRVNTUFJPWFlfUkVMRUFTRV9MT0coTG9hZGluZywgImVzdGFibGlzaFNlcnZpY2VXb3JrZXJD
b250ZXh0OiBTdGFydGVkIik7CiAgICAgbWFya1Byb2Nlc3NBc1JlY2VudGx5VXNlZCgpOwotICAg
IHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUHJvY2Vzczo6RXN0YWJsaXNoV29ya2Vy
Q29udGV4dENvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzIHsgcHJvY2Vzc1Bvb2woKS5kZWZhdWx0
UGFnZUdyb3VwKCkucGFnZUdyb3VwSUQoKSwgbV9zZXJ2aWNlV29ya2VySW5mb3JtYXRpb24tPnNl
cnZpY2VXb3JrZXJQYWdlUHJveHlJRCwgbV9zZXJ2aWNlV29ya2VySW5mb3JtYXRpb24tPnNlcnZp
Y2VXb3JrZXJQYWdlSUQsIHN0b3JlLCByZWdpc3RyYWJsZURvbWFpbiwgc2VydmljZVdvcmtlclBh
Z2VJZGVudGlmaWVyLCBtX3NlcnZpY2VXb3JrZXJJbmZvcm1hdGlvbi0+aW5pdGlhbGl6YXRpb25E
YXRhIH0sIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKKyAgICBzZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkVzdGFibGlzaFdvcmtlckNvbnRl
eHRDb25uZWN0aW9uVG9OZXR3b3JrUHJvY2VzcyB7IHByb2Nlc3NQb29sKCkuZGVmYXVsdFBhZ2VH
cm91cCgpLnBhZ2VHcm91cElEKCksIG1fc2VydmljZVdvcmtlckluZm9ybWF0aW9uLT5zZXJ2aWNl
V29ya2VyUGFnZVByb3h5SUQsIG1fc2VydmljZVdvcmtlckluZm9ybWF0aW9uLT5zZXJ2aWNlV29y
a2VyUGFnZUlELCBzdG9yZSwgcmVnaXN0cmFibGVEb21haW4sIHNlcnZpY2VXb3JrZXJQYWdlSWRl
bnRpZmllciwgbV9zZXJ2aWNlV29ya2VySW5mb3JtYXRpb24tPmluaXRpYWxpemF0aW9uRGF0YSB9
LCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKHdl
YWtUaGlzKQogICAgICAgICAgICAgV0VCUFJPQ0VTU1BST1hZX1JFTEVBU0VfTE9HKExvYWRpbmcs
ICJlc3RhYmxpc2hTZXJ2aWNlV29ya2VyQ29udGV4dDogRmluaXNoZWQiKTsKICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggOTg3MDI2ZGNlZWFhYWU2ZGI0
MzBhNGViOTg2ODk0MzZiNDYyNjEyMS4uYzllNmUxMTNlOWRlMzdlOWM4NTMwNTYzNzU1YTdjOWFh
MmZhMzc2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTE3NDYsNyArMTc0Niw3IEBAIHZvaWQgV2Vi
c2l0ZURhdGFTdG9yZTo6cmVtb3ZlTWVkaWFLZXlzKGNvbnN0IFN0cmluZyYgbWVkaWFLZXlzU3Rv
cmFnZURpcmVjdG9yeSwKIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6Z2V0TmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYgd2ViUHJvY2Vzc1Byb3h5LCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGNvbnN0IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8mKT4mJiByZXBseSwg
U2hvdWxkUmV0cnlPbkZhaWx1cmUgc2hvdWxkUmV0cnlPbkZhaWx1cmUpCiB7CiAgICAgYXV0byYg
bmV0d29ya1Byb2Nlc3NQcm94eSA9IG5ldHdvcmtQcm9jZXNzKCk7Ci0gICAgbmV0d29ya1Byb2Nl
c3NQcm94eS5nZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24od2ViUHJvY2Vzc1Byb3h5LCBbd2Vh
a1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIG5ldHdvcmtQcm9jZXNzUHJveHkgPSBtYWtlV2Vh
a1B0cihuZXR3b3JrUHJvY2Vzc1Byb3h5KSwgd2ViUHJvY2Vzc1Byb3h5ID0gbWFrZVdlYWtQdHIo
d2ViUHJvY2Vzc1Byb3h5KSwgcmVwbHkgPSBXVEZNb3ZlKHJlcGx5KSwgc2hvdWxkUmV0cnlPbkZh
aWx1cmVdIChhdXRvJiBjb25uZWN0aW9uSW5mbykgbXV0YWJsZSB7CisgICAgbmV0d29ya1Byb2Nl
c3NQcm94eS5nZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24od2ViUHJvY2Vzc1Byb3h5LCBbd2Vh
a1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgbmV0d29ya1Byb2Nlc3NQcm94eSA9IG1ha2VXZWFr
UHRyKG5ldHdvcmtQcm9jZXNzUHJveHkpLCB3ZWJQcm9jZXNzUHJveHkgPSBtYWtlV2Vha1B0cih3
ZWJQcm9jZXNzUHJveHkpLCByZXBseSA9IFdURk1vdmUocmVwbHkpLCBzaG91bGRSZXRyeU9uRmFp
bHVyZV0gKGF1dG8mIGNvbm5lY3Rpb25JbmZvKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKFVOTElL
RUxZKCFJUEM6OkNvbm5lY3Rpb246OmlkZW50aWZpZXJJc1ZhbGlkKGNvbm5lY3Rpb25JbmZvLmlk
ZW50aWZpZXIoKSkpKSB7CiAgICAgICAgICAgICBhdXRvIGxvZ0Vycm9yID0gW25ldHdvcmtQcm9j
ZXNzUHJveHksIHdlYlByb2Nlc3NQcm94eV0oKSB7CiAjaWYgT1MoREFSV0lOKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvWFIvUGxhdGZvcm1YUlN5c3RlbS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9YUi9QbGF0Zm9ybVhSU3lzdGVtLmNwcAppbmRleCA2M2YxYmE0
NTNmZmQ3NjliNGQzMjc1YzY4ODIxN2NmYzczODE0MThlLi42ZTJiMmNhMWNlZmE2YmIyZDUyMjFj
ZWE4ZTYxNTI2OWU4ZDdlYWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Y
Ui9QbGF0Zm9ybVhSU3lzdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9YUi9Q
bGF0Zm9ybVhSU3lzdGVtLmNwcApAQCAtODEsNyArODEsNyBAQCB2b2lkIFBsYXRmb3JtWFJTeXN0
ZW06OmluaXRpYWxpemVUcmFja2luZ0FuZFJlbmRlcmluZygpCiAKICAgICBhdXRvIGltbWVyc2l2
ZVNlc3Npb25BY3Rpdml0eSA9IG1fcGFnZS5wcm9jZXNzKCkudGhyb3R0bGVyKCkuZm9yZWdyb3Vu
ZEFjdGl2aXR5KCJYUiBpbW1lcnNpdmUgc2Vzc2lvbiJfcyk7CiAKLSAgICB4ckNvb3JkaW5hdG9y
LT5zdGFydFNlc3Npb24obV9wYWdlLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIGlt
bWVyc2l2ZVNlc3Npb25BY3Rpdml0eSA9IFdURk1vdmUoaW1tZXJzaXZlU2Vzc2lvbkFjdGl2aXR5
KV0oWFJEZXZpY2VJZGVudGlmaWVyIGRldmljZUlkZW50aWZpZXIpIG11dGFibGUgeworICAgIHhy
Q29vcmRpbmF0b3ItPnN0YXJ0U2Vzc2lvbihtX3BhZ2UsIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAq
dGhpcyB9LCBpbW1lcnNpdmVTZXNzaW9uQWN0aXZpdHkgPSBXVEZNb3ZlKGltbWVyc2l2ZVNlc3Np
b25BY3Rpdml0eSldKFhSRGV2aWNlSWRlbnRpZmllciBkZXZpY2VJZGVudGlmaWVyKSBtdXRhYmxl
IHsKICAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt3ZWFrVGhpcywgZGV2aWNlSWRl
bnRpZmllciwgaW1tZXJzaXZlU2Vzc2lvbkFjdGl2aXR5ID0gV1RGTW92ZShpbW1lcnNpdmVTZXNz
aW9uQWN0aXZpdHkpXSgpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQogICAg
ICAgICAgICAgICAgIHdlYWtUaGlzLT5tX3BhZ2Uuc2VuZChNZXNzYWdlczo6UGxhdGZvcm1YUlN5
c3RlbVByb3h5OjpTZXNzaW9uRGlkRW5kKGRldmljZUlkZW50aWZpZXIpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9TLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW0KaW5kZXggMGNj
NDM1MTExMmQ0Y2M0ZDc3MzA2YzA4ZWNmMzcyZmUyYTg4NTBmOC4uMTE4YmJiMzZiYzg3ZjMzYWEx
ZWEyOGQxY2Y0YmQ4ZjhlNjgxZDk0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW0KQEAgLTM3MCw3ICszNzAsNyBAQCB2b2lkIFBy
b2Nlc3NBc3NlcnRpb246OmFjcXVpcmVTeW5jKCkKICAgICBOU0Vycm9yICphY3F1aXNpdGlvbkVy
cm9yID0gbmlsOwogICAgIGlmICghW21fcmJzQXNzZXJ0aW9uIGFjcXVpcmVXaXRoRXJyb3I6JmFj
cXVpc2l0aW9uRXJyb3JdKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFByb2Nlc3NTdXNw
ZW5zaW9uLCAiJXAgLSBQcm9jZXNzQXNzZXJ0aW9uOiBGYWlsZWQgdG8gYWNxdWlyZSBSQlMgYXNz
ZXJ0aW9uICcle3B1YmxpY31zJyBmb3IgcHJvY2VzcyB3aXRoIFBJRD0lZCwgZXJyb3I6ICV7cHVi
bGljfUAiLCB0aGlzLCBtX3JlYXNvbi51dGY4KCkuZGF0YSgpLCBtX3BpZCwgYWNxdWlzaXRpb25F
cnJvcik7Ci0gICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbd2Vha1RoaXMgPSBtYWtl
V2Vha1B0cigqdGhpcyldIHsKKyAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt3ZWFr
VGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XSB7CiAgICAgICAgICAgICBpZiAod2Vha1RoaXMpCiAg
ICAgICAgICAgICAgICAgd2Vha1RoaXMtPnByb2Nlc3NBc3NlcnRpb25XYXNJbnZhbGlkYXRlZCgp
OwogICAgICAgICB9KTsKQEAgLTQ1MSw3ICs0NTEsNyBAQCB2b2lkIFByb2Nlc3NBbmRVSUFzc2Vy
dGlvbjo6cHJvY2Vzc0Fzc2VydGlvbldhc0ludmFsaWRhdGVkKCkKIHsKICAgICBBU1NFUlQoUnVu
TG9vcDo6aXNNYWluKCkpOwogCi0gICAgYXV0byB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlz
KTsKKyAgICBXZWFrUHRyIHdlYWtUaGlzIHsgKnRoaXMgfTsKICAgICBQcm9jZXNzQXNzZXJ0aW9u
Ojpwcm9jZXNzQXNzZXJ0aW9uV2FzSW52YWxpZGF0ZWQoKTsKIAogICAgIC8vIENhbGxpbmcgUHJv
Y2Vzc0Fzc2VydGlvbjo6cHJvY2Vzc0Fzc2VydGlvbldhc0ludmFsaWRhdGVkKCkgbWF5IGhhdmUg
ZGVzdHJveWVkIHx0aGlzfC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XZWJQYWdlUHJveHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFn
ZVByb3h5SU9TLm1tCmluZGV4IGQ3MmU4MjAzNjhhYmRlY2EyZjkwODlhNzliNzdjOTU2NGVjMTM5
OTAuLjRjNzM4YmE4MjYxODMyNjQ3ZTE2NTczMzlhODlhMDBjMGUwMTU3NGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQpAQCAtMTUwNCw3ICsx
NTA0LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OndpbGxPcGVuQXBwTGluaygpCiAgICAgLy8gV2Ug
Y2hvc2UgMjUgc2Vjb25kcyBiZWNhdXNlIHRoZSBzeXN0ZW0gb25seSBnaXZlcyB1cyAzMCBzZWNv
bmRzIGFuZCB3ZSBkb24ndCB3YW50IHRvIGdldCB0b28gY2xvc2UgdG8gdGhhdCBsaW1pdAogICAg
IC8vIHRvIGF2b2lkIGFzc2VydGlvbiBpbnZhbGlkYXRpb24gKG9yIGV2ZW4gdGVybWluYXRpb24p
LgogICAgIG1fb3BlbmluZ0FwcExpbmtBY3Rpdml0eSA9IHByb2Nlc3MoKS50aHJvdHRsZXIoKS5i
YWNrZ3JvdW5kQWN0aXZpdHkoIk9wZW5pbmcgQXBwTGluayJfcykubW92ZVRvVW5pcXVlUHRyKCk7
Ci0gICAgV29ya1F1ZXVlOjptYWluKCkuZGlzcGF0Y2hBZnRlcigyNV9zLCBbd2Vha1RoaXMgPSBt
YWtlV2Vha1B0cigqdGhpcyldIHsKKyAgICBXb3JrUXVldWU6Om1haW4oKS5kaXNwYXRjaEFmdGVy
KDI1X3MsIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XSB7CiAgICAgICAgIGlmICh3ZWFr
VGhpcykKICAgICAgICAgICAgIHdlYWtUaGlzLT5tX29wZW5pbmdBcHBMaW5rQWN0aXZpdHkgPSBu
dWxscHRyOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
V2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbQppbmRleCBhOTVhNTcwNDhiNzg4OWUxZDFkN2I2M2I5
YTJmMTA2MDdiNGFkNDkxLi43NzkyYjBmMjJkN2Q1ZjVlNWNiNzIzZWFmYmVmZTQ4Yjk4MzA4NGM4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQ
cm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1l
bnVQcm94eU1hYy5tbQpAQCAtNTc0LDcgKzU3NCw3IEBAIHZvaWQgV2ViQ29udGV4dE1lbnVQcm94
eU1hYzo6aW5zZXJ0T3JVcGRhdGVRdWlja0xvb2tJbWFnZUl0ZW0oY29uc3QgVVJMJiBpbWFnZVVS
CiB7CiAgICAgUmVmIHBhZ2UgPSAqdGhpcy0+cGFnZSgpOwogICAgIGlmIChxdWlja0xvb2tJdGVt
VG9JbnNlcnRJZk5lZWRlZCkgewotICAgICAgICBwYWdlLT5jb21wdXRlSGFzSW1hZ2VBbmFseXNp
c1Jlc3VsdHMoaW1hZ2VVUkwsIGltYWdlQml0bWFwLmdldCgpLCBJbWFnZUFuYWx5c2lzVHlwZTo6
VmlzdWFsU2VhcmNoLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHF1aWNrTG9va0l0
ZW1Ub0luc2VydElmTmVlZGVkID0gV1RGTW92ZSgqcXVpY2tMb29rSXRlbVRvSW5zZXJ0SWZOZWVk
ZWQpXSAoYm9vbCBoYXNWaXN1YWxTZWFyY2hSZXN1bHRzKSBtdXRhYmxlIHsKKyAgICAgICAgcGFn
ZS0+Y29tcHV0ZUhhc0ltYWdlQW5hbHlzaXNSZXN1bHRzKGltYWdlVVJMLCBpbWFnZUJpdG1hcC5n
ZXQoKSwgSW1hZ2VBbmFseXNpc1R5cGU6OlZpc3VhbFNlYXJjaCwgW3dlYWtUaGlzID0gV2Vha1B0
ciB7ICp0aGlzIH0sIHF1aWNrTG9va0l0ZW1Ub0luc2VydElmTmVlZGVkID0gV1RGTW92ZSgqcXVp
Y2tMb29rSXRlbVRvSW5zZXJ0SWZOZWVkZWQpXSAoYm9vbCBoYXNWaXN1YWxTZWFyY2hSZXN1bHRz
KSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmIChSZWZQdHIgcHJvdGVjdGVkVGhpcyA9IHdlYWtU
aGlzLmdldCgpOyBwcm90ZWN0ZWRUaGlzICYmIGhhc1Zpc3VhbFNlYXJjaFJlc3VsdHMpIHsKICAg
ICAgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX3F1aWNrTG9va1ByZXZpZXdBY3Rpdml0eSA9
IFF1aWNrTG9va1ByZXZpZXdBY3Rpdml0eTo6VmlzdWFsU2VhcmNoOwogICAgICAgICAgICAgICAg
IFtwcm90ZWN0ZWRUaGlzLT5tX21lbnUgYWRkSXRlbTpOU01lbnVJdGVtLnNlcGFyYXRvckl0ZW1d
OwpAQCAtNTg1LDcgKzU4NSw3IEBAIHZvaWQgV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6aW5zZXJ0
T3JVcGRhdGVRdWlja0xvb2tJbWFnZUl0ZW0oY29uc3QgVVJMJiBpbWFnZVVSCiAgICAgfQogCiAg
ICAgaWYgKHNob3VsZFVwZGF0ZVF1aWNrTG9va0l0ZW1UaXRsZSkgewotICAgICAgICBwYWdlLT5j
b21wdXRlSGFzSW1hZ2VBbmFseXNpc1Jlc3VsdHMoaW1hZ2VVUkwsIGltYWdlQml0bWFwLmdldCgp
LCBJbWFnZUFuYWx5c2lzVHlwZTo6VmlzdWFsU2VhcmNoLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0
cigqdGhpcyksIHdlYWtQYWdlID0gbWFrZVdlYWtQdHIocGFnZS5nZXQoKSksIGltYWdlVVJMLCBp
bWFnZUJpdG1hcCA9IFdURk1vdmUoaW1hZ2VCaXRtYXApXSAoYm9vbCBoYXNWaXN1YWxTZWFyY2hS
ZXN1bHRzKSBtdXRhYmxlIHsKKyAgICAgICAgcGFnZS0+Y29tcHV0ZUhhc0ltYWdlQW5hbHlzaXNS
ZXN1bHRzKGltYWdlVVJMLCBpbWFnZUJpdG1hcC5nZXQoKSwgSW1hZ2VBbmFseXNpc1R5cGU6OlZp
c3VhbFNlYXJjaCwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHdlYWtQYWdlID0gbWFr
ZVdlYWtQdHIocGFnZS5nZXQoKSksIGltYWdlVVJMLCBpbWFnZUJpdG1hcCA9IFdURk1vdmUoaW1h
Z2VCaXRtYXApXSAoYm9vbCBoYXNWaXN1YWxTZWFyY2hSZXN1bHRzKSBtdXRhYmxlIHsKICAgICAg
ICAgICAgIFJlZlB0ciBwcm90ZWN0ZWRUaGlzIHsgd2Vha1RoaXMuZ2V0KCkgfTsKICAgICAgICAg
ICAgIGlmICghcHJvdGVjdGVkVGhpcykKICAgICAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggYzA4YmVjZDI0MzE2NzFhYzkyODA5YTE2MTI2MzUy
MTg4N2VmMGE4Yi4uOTQ3NWJiZDJkNzIyM2M5YjY4MWVkZjUzNjAzZTJlZDY1MTJlZWM4ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclBy
aXZhdGVSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcApAQCAtMTQ4LDcgKzE0OCw3IEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwcmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9k
ZSwgTWVkaWFQbGF5ZXI6CiAgICAgYXV0byBzY2FsZSA9IHBsYXllci0+cGxheWVyQ29udGVudHNT
Y2FsZSgpOwogICAgIGF1dG8gcHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZSA9IG1fcGxheWVyLT5w
cmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKCk7CiAKLSAgICBjb25uZWN0aW9uKCkuc2VuZFdpdGhB
c3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpQcmVwYXJlRm9yUGxh
eWJhY2socHJpdmF0ZU1vZGUsIHByZWxvYWQsIHByZXNlcnZlc1BpdGNoLCBwcmVwYXJlLCBzY2Fs
ZSwgcHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZSksIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0
aGlzKSwgdGhpc10oYXV0byBpbmxpbmVMYXllckhvc3RpbmdDb250ZXh0SWQpIG11dGFibGUgewor
ICAgIGNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlh
UGxheWVyUHJveHk6OlByZXBhcmVGb3JQbGF5YmFjayhwcml2YXRlTW9kZSwgcHJlbG9hZCwgcHJl
c2VydmVzUGl0Y2gsIHByZXBhcmUsIHNjYWxlLCBwcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKSwg
W3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHRoaXNdKGF1dG8gaW5saW5lTGF5ZXJIb3N0
aW5nQ29udGV4dElkKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAg
ICAgIHJldHVybjsKIApAQCAtMjAxLDcgKzIwMSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlOjpsb2FkKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBDb250ZW50VHlwZSYgY29udGVudFR5
CiAgICAgICAgIHNhbmRib3hFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKGhhbmRsZSk7CiAgICAg
fQogCi0gICAgY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTo6TG9hZCh1cmwsIHNhbmRib3hFeHRlbnNpb25IYW5kbGUsIGNvbnRl
bnRUeXBlLCBrZXlTeXN0ZW0pLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXNd
KGF1dG8mJiBjb25maWd1cmF0aW9uKSB7CisgICAgY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNS
ZXBseShNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6TG9hZCh1cmwsIHNhbmRib3hF
eHRlbnNpb25IYW5kbGUsIGNvbnRlbnRUeXBlLCBrZXlTeXN0ZW0pLCBbd2Vha1RoaXMgPSBXZWFr
UHRyIHsgKnRoaXMgfSwgdGhpc10oYXV0byYmIGNvbmZpZ3VyYXRpb24pIHsKICAgICAgICAgaWYg
KCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtNzYwLDcgKzc2MCw3IEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpsb2FkKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBD
b250ZW50VHlwZSYgY29udGVudFR5CiB7CiAgICAgaWYgKG1fcmVtb3RlRW5naW5lSWRlbnRpZmll
ciA9PSBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXI6OkFWRm91bmRhdGlv
bk1TRSkgewogICAgICAgICBhdXRvIGlkZW50aWZpZXIgPSBSZW1vdGVNZWRpYVNvdXJjZUlkZW50
aWZpZXI6OmdlbmVyYXRlKCk7Ci0gICAgICAgIGNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVw
bHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OkxvYWRNZWRpYVNvdXJjZSh1cmws
IGNvbnRlbnRUeXBlLCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndl
Yk1QYXJzZXJFbmFibGVkKCksIGlkZW50aWZpZXIpLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigq
dGhpcyksIHRoaXNdKGF1dG8mJiBjb25maWd1cmF0aW9uKSB7CisgICAgICAgIGNvbm5lY3Rpb24o
KS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6Okxv
YWRNZWRpYVNvdXJjZSh1cmwsIGNvbnRlbnRUeXBlLCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpz
aGFyZWRGZWF0dXJlcygpLndlYk1QYXJzZXJFbmFibGVkKCksIGlkZW50aWZpZXIpLCBbd2Vha1Ro
aXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgdGhpc10oYXV0byYmIGNvbmZpZ3VyYXRpb24pIHsKICAg
ICAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCkBAIC03
NzYsNyArNzc2LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmxvYWQoY29uc3Qg
VVJMJiB1cmwsIGNvbnN0IENvbnRlbnRUeXBlJiBjb250ZW50VHkKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIGNhbGxPbk1haW5SdW5Mb29wKFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0
aGlzKSwgdGhpc10geworICAgIGNhbGxPbk1haW5SdW5Mb29wKFt3ZWFrVGhpcyA9IFdlYWtQdHIg
eyAqdGhpcyB9LCB0aGlzXSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICBy
ZXR1cm47CiAKQEAgLTc5Myw3ICs3OTMsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZTo6bG9hZChjb25zdCBVUkwmIHVybCwgY29uc3QgQ29udGVudFR5cGUmIGNvbnRlbnRUeQogI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bG9h
ZChNZWRpYVN0cmVhbVByaXZhdGUmKQogewotICAgIGNhbGxPbk1haW5SdW5Mb29wKFt3ZWFrVGhp
cyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgdGhpc10geworICAgIGNhbGxPbk1haW5SdW5Mb29wKFt3
ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB0aGlzXSB7CiAgICAgICAgIGlmICghd2Vha1Ro
aXMpCiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTEzMjEsNyArMTMyMSw3IEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpzZXRQcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKFdlYkNv
cmU6OkR5bmFtaWNSYW5nCiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwZXJmb3Jt
VGFza0F0TWVkaWFUaW1lKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
LCBjb25zdCBNZWRpYVRpbWUmIG1lZGlhVGltZSkKIHsKLSAgICBhdXRvIGFzeW5jUmVwbHlIYW5k
bGVyID0gW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0aGlzLCBjb21wbGV0aW9uSGFu
ZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShzdGQ6Om9wdGlvbmFsPE1lZGlhVGlt
ZT4gY3VycmVudFRpbWUsIHN0ZDo6b3B0aW9uYWw8TW9ub3RvbmljVGltZT4gcXVlcnlUaW1lKSBt
dXRhYmxlIHsKKyAgICBhdXRvIGFzeW5jUmVwbHlIYW5kbGVyID0gW3dlYWtUaGlzID0gV2Vha1B0
ciB7ICp0aGlzIH0sIHRoaXMsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcildKHN0ZDo6b3B0aW9uYWw8TWVkaWFUaW1lPiBjdXJyZW50VGltZSwgc3RkOjpvcHRp
b25hbDxNb25vdG9uaWNUaW1lPiBxdWVyeVRpbWUpIG11dGFibGUgewogICAgICAgICBpZiAoIXdl
YWtUaGlzIHx8ICFjdXJyZW50VGltZSB8fCAhcXVlcnlUaW1lKQogICAgICAgICAgICAgcmV0dXJu
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCmlu
ZGV4IDgzMzE0NTY5ZjJjMmQ4Njg4NDViNGViZGYwZjdhZWJhZGY1NGY1OWMuLjFhZGQwMTAxM2My
OTdkNTVlMmVhOWFlMDQ1NWZmNDUyODJjZWI0ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCkBAIC0xNTEsNyArMTUxLDcgQEAgdm9pZCBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmVudW1lcmF0ZU1lZGlhRGV2aWNlcyhEb2N1
bWVudCYgZG9jdW1lbnQKICNpZiBVU0UoR1NUUkVBTUVSKQogdm9pZCBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXI6OnVwZGF0ZUNhcHR1cmVEZXZpY2VzKFNob3VsZE5vdGlmeSBzaG91
bGROb3RpZnkpCiB7Ci0gICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2lu
Z2xldG9uKCkuZ2V0TWVkaWFTdHJlYW1EZXZpY2VzKFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0
aGlzKSwgdGhpcywgc2hvdWxkTm90aWZ5XShhdXRvJiYgbmV3RGV2aWNlcykgbXV0YWJsZSB7Cisg
ICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuZ2V0TWVk
aWFTdHJlYW1EZXZpY2VzKFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB0aGlzLCBzaG91
bGROb3RpZnldKGF1dG8mJiBuZXdEZXZpY2VzKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCF3ZWFr
VGhpcykKICAgICAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBlcm1pc3Npb25Db250cm9sbGVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQZXJtaXNzaW9uQ29udHJv
bGxlci5jcHAKaW5kZXggYzRkMDExY2QzZjEwNzI5NWEwZmFiNGQzZTAzODU3MGY2Nzk1MWY1MC4u
MDA4NWU0OThjZTBkNjZhNTgyY2Y2ODFlNDZkOGFkYmMxZDIyZmUxNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBlcm1pc3Npb25Db250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
UGVybWlzc2lvbkNvbnRyb2xsZXIuY3BwCkBAIC0xMTIsNyArMTEyLDcgQEAgdm9pZCBXZWJQZXJt
aXNzaW9uQ29udHJvbGxlcjo6dHJ5UHJvY2Vzc2luZ1JlcXVlc3RzKCkKICAgICAgICAgfQogCiAg
ICAgICAgIGN1cnJlbnRSZXF1ZXN0LmlzV2FpdGluZ0ZvclJlcGx5ID0gdHJ1ZTsKLSAgICAgICAg
bV9wYWdlLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6cmVxdWVz
dFBlcm1pc3Npb24oY3VycmVudFJlcXVlc3Qub3JpZ2luLCBjdXJyZW50UmVxdWVzdC5kZXNjcmlw
dG9yKSwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXShhdXRvIHN0YXRlKSB7
CisgICAgICAgIG1fcGFnZS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OnJlcXVlc3RQZXJtaXNzaW9uKGN1cnJlbnRSZXF1ZXN0Lm9yaWdpbiwgY3VycmVudFJlcXVl
c3QuZGVzY3JpcHRvciksIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XShhdXRv
IHN0YXRlKSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgICAgIHJl
dHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlNwZWVjaFN5bnRoZXNpc0NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmNwcAppbmRleCA1MzAx
ZDkyZjlhNjI3NTM1ZDllZDIxMDM0ZDNlYjcxMGMyZjY3MzQwLi45YTE5MTZhYTg2ZDkyNmU0ZjZj
ZWU5MjE4MGM5NjgzNTgwN2U3MWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoU3ludGhlc2lzQ2xp
ZW50LmNwcApAQCAtNTcsMTQgKzU3LDE0IEBAIFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNpc0NsaWVu
dE9ic2VydmVyKiBXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQ6OmNvcmVQYWdlT2JzZXJ2CiAKIHZv
aWQgV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50OjpzcGVhayhSZWZQdHI8V2ViQ29yZTo6UGxhdGZv
cm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U+IHV0dGVyYW5jZSkKIHsKLSAgICBXVEY6OkNvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4gc3RhcnRlZENvbXBsZXRpb25IYW5kbGVyID0gW3RoaXMsIHdl
YWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSgpIG11dGFibGUgeworICAgIFdURjo6Q29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiBzdGFydGVkQ29tcGxldGlvbkhhbmRsZXIgPSBbdGhpcywgd2Vh
a1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0oKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCF3ZWFr
VGhpcykKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgaWYgKGF1dG8gb2JzZXJ2ZXIgPSBj
b3JlUGFnZU9ic2VydmVyKCkpCiAgICAgICAgICAgICBvYnNlcnZlci0+ZGlkU3RhcnRTcGVha2lu
ZygpOwogICAgIH07CiAKLSAgICBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4gZmluaXNo
ZWRDb21wbGV0aW9uSGFuZGxlciA9IFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlz
KV0oKSBtdXRhYmxlIHsKKyAgICBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4gZmluaXNo
ZWRDb21wbGV0aW9uSGFuZGxlciA9IFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9
XSgpIG11dGFibGUgewogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICBpZiAoYXV0byBvYnNlcnZlciA9IGNvcmVQYWdlT2JzZXJ2ZXIoKSkKQEAgLTg5
LDcgKzg5LDcgQEAgdm9pZCBXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQ6OmNhbmNlbCgpCiAKIHZv
aWQgV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50OjpwYXVzZSgpCiB7Ci0gICAgV1RGOjpDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+IGNvbXBsZXRpb25IYW5kbGVyID0gW3RoaXMsIHdlYWtUaGlzID0g
bWFrZVdlYWtQdHIoKnRoaXMpXSgpIG11dGFibGUgeworICAgIFdURjo6Q29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiBjb21wbGV0aW9uSGFuZGxlciA9IFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIg
eyAqdGhpcyB9XSgpIG11dGFibGUgewogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICBpZiAoYXV0byBvYnNlcnZlciA9IGNvcmVQYWdlT2JzZXJ2ZXIo
KSkKQEAgLTEwMSw3ICsxMDEsNyBAQCB2b2lkIFdlYlNwZWVjaFN5bnRoZXNpc0NsaWVudDo6cGF1
c2UoKQogCiB2b2lkIFdlYlNwZWVjaFN5bnRoZXNpc0NsaWVudDo6cmVzdW1lKCkKIHsKLSAgICBX
VEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4gY29tcGxldGlvbkhhbmRsZXIgPSBbdGhpcywg
d2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyldKCkgbXV0YWJsZSB7CisgICAgV1RGOjpDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+IGNvbXBsZXRpb25IYW5kbGVyID0gW3RoaXMsIHdlYWtUaGlz
ID0gV2Vha1B0ciB7ICp0aGlzIH1dKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMp
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGlmIChhdXRvIG9ic2VydmVyID0gY29yZVBh
Z2VPYnNlcnZlcigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCmlu
ZGV4IDg4OGM3YzQxY2M3NDQwMjM5YmExMDllMzk4ZGI5Y2Y1YTkyZjhhYTguLjcyOTk4ZmEwZTJi
MGE3MDBmZjI1Zjk4YzU2YzUxOWI0MjIzMDdhZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0
aW9uRHJhd2luZ0FyZWEubW0KQEAgLTExOCw3ICsxMTgsNyBAQCB2b2lkIFRpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhOjpzZW5kRGlkRmlyc3RMYXllckZsdXNoSWZOZWVkZWQoKQogICAgIG1f
bmVlZHNTZW5kRGlkRmlyc3RMYXllckZsdXNoID0gZmFsc2U7CiAKICAgICAvLyBMZXQgdGhlIGZp
cnN0IGNvbW1pdCBjb21wbGV0ZSBiZWZvcmUgc2VuZGluZy4KLSAgICBbQ0FUcmFuc2FjdGlvbiBh
ZGRDb21taXRIYW5kbGVyOlt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0gewor
ICAgIFtDQVRyYW5zYWN0aW9uIGFkZENvbW1pdEhhbmRsZXI6W3RoaXMsIHdlYWtUaGlzID0gV2Vh
a1B0ciB7ICp0aGlzIH1dIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcyB8fCAhbV9sYXllckhvc3Rp
bmdDb250ZXh0KQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBMYXllclRyZWVDb250ZXh0
IGxheWVyVHJlZUNvbnRleHQ7CkBAIC0xODQsNyArMTg0LDcgQEAgdm9pZCBUaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYTo6Zm9yY2VSZXBhaW50QXN5bmMoV2ViUGFnZSYgcGFnZSwgQ29tcGxl
dGlvbkgKICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAgfQogCi0gICAg
ZGlzcGF0Y2hBZnRlckVuc3VyaW5nVXBkYXRlZFNjcm9sbFBvc2l0aW9uKFt0aGlzLCB3ZWFrVGhp
cyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKV0gKCkgbXV0YWJsZSB7CisgICAgZGlzcGF0Y2hBZnRlckVuc3VyaW5nVXBk
YXRlZFNjcm9sbFBvc2l0aW9uKFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxl
IHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9u
SGFuZGxlcigpOwogICAgICAgICBtX3dlYlBhZ2UuZHJhd2luZ0FyZWEoKS0+Zm9yY2VSZXBhaW50
KCk7CkBAIC01MTMsNyArNTEzLDcgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJl
YTo6aGFuZGxlQWN0aXZpdHlTdGF0ZUNoYW5nZUNhbGxiYWNrc0lmTmVlZGVkKCkKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIFtDQVRyYW5zYWN0aW9uIGFkZENvbW1pdEhhbmRsZXI6W3dl
YWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSB7CisgICAgW0NBVHJhbnNhY3Rpb24gYWRkQ29t
bWl0SGFuZGxlcjpbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0gewogICAgICAgICBpZiAo
IXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0gYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KaW5kZXgg
ZDIyNTUyZWU0NWMxODYzZjMxYWVhMWMyNTQ2YzU0MTc3ZDMxZTkzNC4uYmQ1YzU2OTUxOWZjNThm
MTI3ZTVlYmI1MjQ1ODJlYTk0YTk4MDlhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQpAQCAtMTI0MSw3
ICsxMjQxLDcgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5n
KFRleHRDaGVja2luZ1JlcXVlc3QmIHJlcXVlc3QsIGNvbnMKIAogICAgIE5TUmFuZ2UgcmFuZ2Ug
PSBOU01ha2VSYW5nZSgwLCByZXF1ZXN0LmRhdGEoKS50ZXh0KCkubGVuZ3RoKCkpOwogICAgIE5T
UnVuTG9vcCAqY3VycmVudExvb3AgPSBbTlNSdW5Mb29wIGN1cnJlbnRSdW5Mb29wXTsKLSAgICBX
ZWFrUHRyPFdlYkVkaXRvckNsaWVudD4gd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyk7Cisg
ICAgV2Vha1B0ciB3ZWFrVGhpcyB7ICp0aGlzIH07CiAgICAgTlNEaWN0aW9uYXJ5ICpvcHRpb25z
ID0gQHsgTlNUZXh0Q2hlY2tpbmdJbnNlcnRpb25Qb2ludEtleSA6IFtOU051bWJlciBudW1iZXJX
aXRoVW5zaWduZWRJbnRlZ2VyOmluc2VydGlvblBvaW50RnJvbUN1cnJlbnRTZWxlY3Rpb24oY3Vy
cmVudFNlbGVjdGlvbildIH07CiAgICAgTlNUZXh0Q2hlY2tpbmdUeXBlIHR5cGVzID0gTlNUZXh0
Q2hlY2tpbmdUeXBlU3BlbGxpbmcgfCBOU1RleHRDaGVja2luZ1R5cGVHcmFtbWFyIHwgTlNUZXh0
Q2hlY2tpbmdUeXBlTGluayB8IE5TVGV4dENoZWNraW5nVHlwZVF1b3RlIHwgTlNUZXh0Q2hlY2tp
bmdUeXBlRGFzaCB8IE5TVGV4dENoZWNraW5nVHlwZVJlcGxhY2VtZW50IHwgTlNUZXh0Q2hlY2tp
bmdUeXBlQ29ycmVjdGlvbjsKICAgICBbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxsQ2hlY2tl
cl0gcmVxdWVzdENoZWNraW5nT2ZTdHJpbmc6cmVxdWVzdC5kYXRhKCkudGV4dCgpIHJhbmdlOnJh
bmdlIHR5cGVzOnR5cGVzIG9wdGlvbnM6b3B0aW9ucyBpblNwZWxsRG9jdW1lbnRXaXRoVGFnOjAg
Y29tcGxldGlvbkhhbmRsZXI6XihOU0ludGVnZXIsIE5TQXJyYXkgKnJlc3VsdHMsIE5TT3J0aG9n
cmFwaHkgKiwgTlNJbnRlZ2VyKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IDM1
NmM5M2YzMWU4ZmE1NmQ5NDI0MWM1YjIwYTkyOWU0YmFhNDhjYjEuLjM1NmEzNmEyNzk1ZjM4M2Ji
YjRjZWZkMTgzMTc4YzdiODE4NThkZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBA
IC0yMjA1LDcgKzIyMDUsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpnZXRMb2FkRGVj
aXNpb25Gb3JJY29ucyhjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFdlYkNvcgogICAgICAgICB9CiAK
ICAgICAgICAgbV9sb2FkaW5nSWNvbiA9IHRydWU7Ci0gICAgICAgIGRvY3VtZW50TG9hZGVyLT5k
aWRHZXRMb2FkRGVjaXNpb25Gb3JJY29uKHRydWUsIGljb24tPnNlY29uZCwgW3RoaXMsIHdlYWtU
aGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSAoV2ViQ29yZTo6U2hhcmVkQnVmZmVyKiBidWZmZXIp
IHsKKyAgICAgICAgZG9jdW1lbnRMb2FkZXItPmRpZEdldExvYWREZWNpc2lvbkZvckljb24odHJ1
ZSwgaWNvbi0+c2Vjb25kLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0gKFdl
YkNvcmU6OlNoYXJlZEJ1ZmZlciogYnVmZmVyKSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlz
KQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIGZpbmlzaGVkTG9hZGluZ0lj
b24oYnVmZmVyKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>