<?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>231615</bug_id>
          
          <creation_ts>2021-10-12 14:10:44 -0700</creation_ts>
          <short_desc>Decrease use of makeWeakPtr()</short_desc>
          <delta_ts>2021-10-12 16:34:20 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>231580</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cgarcia</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</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>jbedard</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>joepeck</cc>
    
    <cc>jsbell</cc>
    
    <cc>kangil.han</cc>
    
    <cc>keith_miller</cc>
    
    <cc>macpherson</cc>
    
    <cc>mark.lam</cc>
    
    <cc>menard</cc>
    
    <cc>msaboff</cc>
    
    <cc>pangle</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>toyoshim</cc>
    
    <cc>tzagallo</cc>
    
    <cc>vjaquez</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>yutak</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1803368</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-12 14:10:44 -0700</bug_when>
    <thetext>Decrease use of makeWeakPtr() and use WeakPtr { } directly instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803393</commentid>
    <comment_count>1</comment_count>
      <attachid>440983</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-12 14:29:09 -0700</bug_when>
    <thetext>Created attachment 440983
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803537</commentid>
    <comment_count>2</comment_count>
      <attachid>440983</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-12 16:33:17 -0700</bug_when>
    <thetext>Comment on attachment 440983
Patch

Clearing flags on attachment: 440983

Committed r284057 (242886@main): &lt;https://commits.webkit.org/242886@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803538</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-12 16:33:23 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803539</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-12 16:34:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/84172108&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440983</attachid>
            <date>2021-10-12 14:29:09 -0700</date>
            <delta_ts>2021-10-12 16:33:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231615-20211012142908.patch</filename>
            <type>text/plain</type>
            <size>204035</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
OTFiNDA3N2M3MWViN2FhN2MwNThkMWVmN2RkYTgzOTg1MGNkZWI3Li41MWM1M2E3NTI4MDIzNWU4
NWEzOTUxNjM3YTkxOGJhOTYxNjUwNGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAyMS0xMC0xMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIERlY3JlYXNlIHVzZSBvZiBtYWtlV2Vha1B0cigpCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE2MTUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEZWNyZWFzZSB1c2Ugb2YgbWFrZVdlYWtQ
dHIoKSBhbmQgdXNlIFdlYWtQdHIgeyB9IGRpcmVjdGx5IGluc3RlYWQuCisKKyAgICAgICAgKiBp
bnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAg
KEluc3BlY3Rvcjo6SlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyOjpjb25zb2xlQ2xp
ZW50IGNvbnN0KToKKyAgICAgICAgKiB3YXNtL1dhc21NZW1vcnkuY3BwOgorICAgICAgICAoSlND
OjpXYXNtOjpNZW1vcnk6OnJlZ2lzdGVySW5zdGFuY2UpOgorCiAyMDIxLTEwLTEyICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVXNlIFNUTCBp
bnN0ZWFkIG9mIFdURjo6Z2V0X2lmLCBXVEY6Ok1vbm9zdGF0ZSwgV1RGOjp2aXNpdCwgYW5kIFdU
Rjo6aG9sZHNfYWx0ZXJuYXRpdmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIv
U291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggZjQxNzU5ODk3YzY0MTYwMWRhZmIwZDdjY2ViOWUz
OTEyOTY2ZDE0ZC4uYTJkYmU5YTQxODJkMzIzZTFhMjYxODQ4ZGVjMDUyZjNiNjFkNThkZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMCBAQAorMjAyMS0xMC0xMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCisgICAgICAgIERlY3JlYXNlIHVzZSBvZiBtYWtlV2Vha1B0cigpCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE2MTUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEZWNyZWFzZSB1c2Ugb2YgbWFr
ZVdlYWtQdHIoKSBhbmQgdXNlIFdlYWtQdHIgeyB9IGRpcmVjdGx5IGluc3RlYWQuCisKKyAgICAg
ICAgKiB3dGYvQ2FuY2VsbGFibGVUYXNrLmg6CisgICAgICAgIChXVEY6OlRhc2tDYW5jZWxsYXRp
b25Hcm91cDo6SGFuZGxlOjpIYW5kbGUpOgorICAgICAgICAqIHd0Zi9MaXN0SGFzaFNldC5oOgor
ICAgICAgICAoV1RGOjpMaXN0SGFzaFNldENvbnN0SXRlcmF0b3I6Okxpc3RIYXNoU2V0Q29uc3RJ
dGVyYXRvcik6CisgICAgICAgIChXVEY6Okxpc3RIYXNoU2V0Q29uc3RJdGVyYXRvcjo6b3BlcmF0
b3IrKyk6CisgICAgICAgIChXVEY6Okxpc3RIYXNoU2V0Q29uc3RJdGVyYXRvcjo6b3BlcmF0b3It
LSk6CisgICAgICAgICogd3RmL1dlYWtIYXNoU2V0Lmg6CisKIDIwMjEtMTAtMTIgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBVc2UgU1RMIGlu
c3RlYWQgb2YgV1RGOjpnZXRfaWYsIFdURjo6TW9ub3N0YXRlLCBXVEY6OnZpc2l0LCBhbmQgV1RG
Ojpob2xkc19hbHRlcm5hdGl2ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDdmZjM2YTI4OGIxNjEzYWI4MjE3MzY5
MmZjYjUxMjdkNDkxNTc3MmYuLmU4NjY5YTEyNDg2MTI2ODNhYmYxZGFjYzJlNDQ2N2NhN2UxNmU5
ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNTIgQEAKKzIwMjEtMTAtMTIgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBEZWNyZWFzZSB1c2Ugb2YgbWFrZVdlYWtQ
dHIoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMx
NjE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRGVj
cmVhc2UgdXNlIG9mIG1ha2VXZWFrUHRyKCkgYW5kIHVzZSBXZWFrUHRyIHsgfSBkaXJlY3RseSBp
bnN0ZWFkLgorCisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Np
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFLZXlTZXNzaW9uOjpnZW5lcmF0ZVJlcXVl
c3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFLZXlTZXNzaW9uOjpsb2FkKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhS2V5U2Vzc2lvbjo6dXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhS2V5U2Vzc2lvbjo6Y2xvc2UpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFLZXlTZXNzaW9u
OjpyZW1vdmUpOgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0
ZW1BY2Nlc3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1BY2Nlc3M6OmNy
ZWF0ZU1lZGlhS2V5cyk6CisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtl
eVN5c3RlbUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1D
b250cm9sbGVyOjpNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIpOgorICAgICAgICAqIE1vZHVsZXMv
ZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5
czo6TWVkaWFLZXlzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5czo6Y3JlYXRlU2Vzc2lv
bik6CisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9sZWdhY3kvV2ViS2l0TWVkaWFL
ZXlzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdE1lZGlhS2V5czo6c2V0TWVkaWFFbGVt
ZW50KToKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keVNvdXJjZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGZXRjaEJvZHlTb3VyY2U6OkZldGNoQm9keVNvdXJjZSk6CisgICAgICAg
ICogTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZl
dGNoUmVzcG9uc2U6OmFkZEFib3J0U3RlcHMpOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpXb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMvZ2FtZXBhZC9HYW1lcGFk
TWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHYW1lcGFkTWFuYWdlcjo6cGxhdGZvcm1H
YW1lcGFkRGlzY29ubmVjdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkdhbWVwYWRNYW5hZ2VyOjpt
YWtlR2FtZXBhZFZpc2libGUpOgorICAgICAgICAqIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9j
YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb246Okdlb2xvY2F0aW9uKToK
KyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdodC9BcHBIaWdobGlnaHRTdG9yYWdlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFwcEhpZ2hsaWdodFN0b3JhZ2U6OkFwcEhpZ2hsaWdodFN0b3JhZ2Up
OgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5oOgorICAgICAgICAoV2Vi
Q29yZTo6SURCQ3Vyc29yOjpzZXRSZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklE
QkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyOjpJREJDb25uZWN0aW9uVG9TZXJ2ZXIpOgor
ICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZUNvbm5l
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFz
ZUNvbm5lY3Rpb246OlVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbik6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9u
OjpVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
Y29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFD
b250cm9sc0hvc3Q6Ok1lZGlhQ29udHJvbHNIb3N0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
Q29udHJvbHNIb3N0OjpzaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KToKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhTWV0YWRhdGE6OnNldE1lZGlhU2Vzc2lvbik6CisgICAgICAgICogTW9kdWxlcy9tZWRp
YXNlc3Npb24vTWVkaWFTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lv
bjo6TWVkaWFTZXNzaW9uKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNl
c3Npb25Db29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25Db29y
ZGluYXRvcjo6c2V0TWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcml2YXRlKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZXRNZWRpYVNlc3Npb24pOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTb3VyY2U6OmF0dGFjaFRvRWxlbWVudCk6CisgICAgICAgICogTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYURldmljZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFEZXZpY2Vz
Ojpjb21wdXRlVXNlckdlc3R1cmVQcml2aWxlZGdlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
RGV2aWNlczo6ZW51bWVyYXRlRGV2aWNlcyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGVlckNvbm5l
Y3Rpb25CYWNrZW5kOjphZGRJY2VDYW5kaWRhdGUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDRFRNRlNlbmRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSVENEVE1GU2VuZGVy
OjpSVENEVE1GU2VuZGVyKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0ljZVRy
YW5zcG9ydC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSVENJY2VUcmFuc3BvcnQ6OlJUQ0ljZVRy
YW5zcG9ydCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBSZWNlaXZlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBSZWNlaXZlcjo6UlRDUnRwUmVjZWl2ZXIpOgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybTo6aW5pdGlhbGl6ZVRyYW5z
Zm9ybWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybTo6Y3JlYXRl
U3RyZWFtcyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFu
c2Zvcm0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU2NyaXB0VHJhbnNmb3JtOjpzZXRU
cmFuc2Zvcm1lcik6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRU
cmFuc2Zvcm1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTY3JpcHRUcmFuc2Zvcm1l
cjo6c3RhcnQpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2VuZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNlbmRlcjo6UlRDUnRwU2VuZGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJUQ1J0cFNlbmRlcjo6cmVwbGFjZVRyYWNrKToKKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFRyYW5zY2VpdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJUQ1J0cFRyYW5zY2VpdmVyOjpzZXRDb25uZWN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TGliV2ViUlRDRGF0YUNoYW5uZWxIYW5kbGVyOjpzZXRDbGllbnQpOgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ0R0bHNUcmFu
c3BvcnRCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ0R0bHNUcmFuc3Bv
cnRCYWNrZW5kT2JzZXJ2ZXI6OkxpYldlYlJUQ0R0bHNUcmFuc3BvcnRCYWNrZW5kT2JzZXJ2ZXIp
OgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ0ljZVRy
YW5zcG9ydEJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRDSWNlVHJhbnNw
b3J0QmFja2VuZE9ic2VydmVyOjpMaWJXZWJSVENJY2VUcmFuc3BvcnRCYWNrZW5kT2JzZXJ2ZXIp
OgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFNl
bmRlckJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRDUnRwU2VuZGVyQmFj
a2VuZDo6TGliV2ViUlRDUnRwU2VuZGVyQmFja2VuZCk6CisgICAgICAgIChXZWJDb3JlOjpMaWJX
ZWJSVENSdHBTZW5kZXJCYWNrZW5kOjpzdGFydFNvdXJjZSk6CisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDU2N0cFRyYW5zcG9ydEJhY2tlbmQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRDU2N0cFRyYW5zcG9ydEJhY2tlbmRPYnNlcnZlcjo6
TGliV2ViUlRDU2N0cFRyYW5zcG9ydEJhY2tlbmRPYnNlcnZlcik6CisgICAgICAgICogTW9kdWxl
cy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVzcG9uc2UuY3BwOgorICAgICAgICAqIE1vZHVsZXMv
cGVybWlzc2lvbnMvUGVybWlzc2lvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGVybWlzc2lv
bnM6OlBlcm1pc3Npb25zKToKKyAgICAgICAgKiBNb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1
Z2luUmVwbGFjZW1lbnQubW06CisgICAgICAgIChXZWJDb3JlOjpRdWlja1RpbWVQbHVnaW5SZXBs
YWNlbWVudDo6UXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQpOgorICAgICAgICAqIE1vZHVsZXMv
cGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
WW91VHViZVBsdWdpblJlcGxhY2VtZW50OjpZb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQpOgorICAg
ICAgICAqIE1vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVtb3RlUGxheWJhY2s6OlJlbW90ZVBsYXliYWNrKToKKyAgICAgICAgKiBN
b2R1bGVzL3NwZWVjaC9ET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NV2luZG93U3BlZWNoU3ludGhlc2lzOjpzcGVlY2hTeW50aGVzaXMpOgorICAgICAg
ICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjp1cGRhdGVEYXRhU291cmNlKToKKyAg
ICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0Q2FwdHVyZSk6CisgICAgICAgICogTW9kdWxl
cy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5
bnRoZXNpczo6U3BlZWNoU3ludGhlc2lzKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9jb2Nv
YS9TcGVlY2hSZWNvZ25pemVyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pemVyOjpzdGFydFJlY29nbml0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL3N0b3JhZ2UvU3Rv
cmFnZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZU1hbmFnZXI6OlN0b3Jh
Z2VNYW5hZ2VyKToKKyAgICAgICAgKiBNb2R1bGVzL3N0b3JhZ2UvV29ya2VyU3RvcmFnZUNvbm5l
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU3RvcmFnZUNvbm5lY3Rpb246Oldv
cmtlclN0b3JhZ2VDb25uZWN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
Tm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb05vZGU6OnRvV2Vha09yU3Ryb25nQ29u
dGV4dCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1N1bW1pbmdKdW5jdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1N1bW1pbmdKdW5jdGlvbjo6QXVkaW9TdW1taW5n
SnVuY3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvV29ya2xldDo6QXVkaW9Xb3JrbGV0KToKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvV29ya2xldE1lc3NhZ2luZ1Byb3h5OjpBdWRpb1dvcmtsZXRNZXNz
YWdpbmdQcm94eSk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5u
ZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6V2ViU29ja2V0Q2hh
bm5lbCk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUklucHV0U291cmNlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldlYlhSSW5wdXRTb3VyY2U6OldlYlhSSW5wdXRTb3VyY2UpOgorICAg
ICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNwYWNlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OldlYlhSSW5wdXRTcGFjZTo6V2ViWFJJbnB1dFNwYWNlKToKKyAgICAgICAgKiBNb2R1bGVz
L3dlYnhyL1dlYlhSUmVmZXJlbmNlU3BhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJS
ZWZlcmVuY2VTcGFjZTo6V2ViWFJSZWZlcmVuY2VTcGFjZSk6CisgICAgICAgICogTW9kdWxlcy93
ZWJ4ci9XZWJYUlJlbmRlclN0YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUlJlbmRlclN0
YXRlOjpzZXRPdXRwdXRDYW52YXMpOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJSaWdp
ZFRyYW5zZm9ybS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUlJpZ2lkVHJhbnNmb3JtOjpp
bnZlcnNlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSU2Vzc2lvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJYUlNlc3Npb246OldlYlhSU2Vzc2lvbik6CisgICAgICAgICogTW9k
dWxlcy93ZWJ4ci9XZWJYUlNwYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSVmlld2Vy
U3BhY2U6OldlYlhSVmlld2VyU3BhY2UpOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJT
eXN0ZW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJTeXN0ZW06OldlYlhSU3lzdGVtKToK
KyAgICAgICAgKFdlYkNvcmU6OldlYlhSU3lzdGVtOjplbnN1cmVJbW1lcnNpdmVYUkRldmljZUlz
U2VsZWN0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJTeXN0ZW06OnJlZ2lzdGVyU2ltdWxh
dGVkWFJEZXZpY2VGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSU3lzdGVtOjp1
bnJlZ2lzdGVyU2ltdWxhdGVkWFJEZXZpY2VGb3JUZXN0aW5nKToKKyAgICAgICAgKiBhbmltYXRp
b24vQW5pbWF0aW9uVGltZWxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uVGlt
ZWxpbmU6OmFuaW1hdGlvblRpbWluZ0RpZENoYW5nZSk6CisgICAgICAgICogYW5pbWF0aW9uL0Rl
Y2xhcmF0aXZlQW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlY2xhcmF0aXZlQW5p
bWF0aW9uOjpEZWNsYXJhdGl2ZUFuaW1hdGlvbik6CisgICAgICAgICogYW5pbWF0aW9uL0RvY3Vt
ZW50VGltZWxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaW1lbGluZTo6RG9j
dW1lbnRUaW1lbGluZSk6CisgICAgICAgICogYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0U3RhY2su
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVFZmZlY3RTdGFjazo6YWRkRWZmZWN0KToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkpTTGF6eUV2ZW50TGlzdGVuZXI6OmNyZWF0ZSk6CisgICAgICAgICogYmluZGlu
Z3MvanMvU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlw
dENhY2hlZEZyYW1lRGF0YTo6cmVzdG9yZSk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0
Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjppbml0
U2NyaXB0Rm9yV2luZG93UHJveHkpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dpbmRvd1Byb3h5
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldpbmRvd1Byb3h5OjpXaW5kb3dQcm94eSk6CisgICAg
ICAgIChXZWJDb3JlOjpXaW5kb3dQcm94eTo6c2V0RE9NV2luZG93KToKKyAgICAgICAgKiBjcnlw
dG8vU3VidGxlQ3J5cHRvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdldFByb21pc2UpOgorICAg
ICAgICAoV2ViQ29yZTo6U3VidGxlQ3J5cHRvOjplbmNyeXB0KToKKyAgICAgICAgKFdlYkNvcmU6
OlN1YnRsZUNyeXB0bzo6ZGVjcnlwdCk6CisgICAgICAgIChXZWJDb3JlOjpTdWJ0bGVDcnlwdG86
OnNpZ24pOgorICAgICAgICAoV2ViQ29yZTo6U3VidGxlQ3J5cHRvOjp2ZXJpZnkpOgorICAgICAg
ICAoV2ViQ29yZTo6U3VidGxlQ3J5cHRvOjpkaWdlc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3Vi
dGxlQ3J5cHRvOjpnZW5lcmF0ZUtleSk6CisgICAgICAgIChXZWJDb3JlOjpTdWJ0bGVDcnlwdG86
OmRlcml2ZUtleSk6CisgICAgICAgIChXZWJDb3JlOjpTdWJ0bGVDcnlwdG86OmRlcml2ZUJpdHMp
OgorICAgICAgICAoV2ViQ29yZTo6U3VidGxlQ3J5cHRvOjppbXBvcnRLZXkpOgorICAgICAgICAo
V2ViQ29yZTo6U3VidGxlQ3J5cHRvOjpleHBvcnRLZXkpOgorICAgICAgICAoV2ViQ29yZTo6U3Vi
dGxlQ3J5cHRvOjp3cmFwS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OlN1YnRsZUNyeXB0bzo6dW53
cmFwS2V5KToKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTRm9udEZhY2U6OkNTU0ZvbnRGYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRG
YWNlOjp3cmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlOjpzZXRXcmFwcGVy
KToKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VTZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTRm9udEZhY2VTZXQ6OkNTU0ZvbnRGYWNlU2V0KToKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZh
Y2VTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2VTb3VyY2U6OkNTU0Zv
bnRGYWNlU291cmNlKToKKyAgICAgICAgKiBjc3MvQ1NTRm9udFNlbGVjdG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU0ZvbnRTZWxlY3Rvcjo6Q1NTRm9udFNlbGVjdG9yKToKKyAgICAgICAg
KiBjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1
ZXJ5RXZhbHVhdG9yOjpNZWRpYVF1ZXJ5RXZhbHVhdG9yKToKKyAgICAgICAgKiBjc3MvTWVkaWFR
dWVyeU1hdGNoZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeU1hdGNoZXI6Ok1l
ZGlhUXVlcnlNYXRjaGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlNYXRjaGVyOjph
ZGRNZWRpYVF1ZXJ5TGlzdCk6CisgICAgICAgICogY3NzL1Byb3BlcnR5U2V0Q1NTU3R5bGVEZWNs
YXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFy
YXRpb246OndyYXBGb3JEZXByZWNhdGVkQ1NTT00pOgorICAgICAgICAqIGNzcy9TdHlsZVNoZWV0
TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVNoZWV0TGlzdDo6U3R5bGVTaGVldExp
c3QpOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTRGVmZXJyZWRQYXJzZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTRGVmZXJyZWRQYXJzZXI6OkNTU0RlZmVycmVkUGFyc2VyKToKKyAgICAg
ICAgKiBkb20vRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJv
bGxlcjo6c2hvdWxkQWxsb3dBY2Nlc3MpOgorICAgICAgICAqIGRvbS9NZXNzYWdlUG9ydC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlUG9ydDo6ZGlzcGF0Y2hNZXNzYWdlcyk6CisgICAg
ICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxN
ZWRpYUVsZW1lbnQ6OnVwZGF0ZUFjdGl2ZVRleHRUcmFja0N1ZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTE1lZGlhRWxlbWVudDo6cHJvZ3Jlc3NFdmVudFRpbWVyRmlyZWQpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklt
YWdlU291cmNlOjplbnN1cmVEZWNvZGVyQXZhaWxhYmxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Mb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5t
bToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpvbkly
cmVndWxhckZyYW1lUmF0ZU5vdGlmaWNhdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5t
bToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
OmNyZWF0ZUFWQXNzZXRGb3JVUkwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6TWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cHJvY2Vzc05ld1ZpZGVvU2FtcGxl
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
Qzo6ZW5zdXJlTGF5ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6
OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRQYXJzZUluaXRpYWxpemF0aW9uRGF0YSk6
CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6YXBwZW5kKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcjo6dmlkZW9TaW5rQ2Fwc0NoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVj
b3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpzdG9wUmVjb3JkaW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpmZXRjaERhdGEpOgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXJDb2NvYTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXJDb2NvYTo6cHVzaFNhbXBsZXMpOgorICAgICAgICAqIHBsYXRmb3Jt
L21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2U6OnBsYXkpOgorICAgICAgICAo
V2ViQ29yZTo6TW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2U6OnNlZWtXaXRoVG9sZXJhbmNlKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYVBsYXllck1lZGlhU291cmNlOjpzZWVrQ29tcGxl
dGVkKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnRlcm5hbHM6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKToKKyAgICAgICAgKiB0ZXN0aW5nL1Nl
cnZpY2VXb3JrZXJJbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtl
ckludGVybmFsczo6c2NoZWR1bGVQdXNoRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlckludGVybmFsczo6bGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQpOgorICAgICAg
ICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclRocmVhZDo6cXVldWVUYXNrVG9Qb3N0TWVzc2Fn
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFkOjpxdWV1ZVRhc2tUb0Zp
cmVJbnN0YWxsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclRocmVhZDo6
cXVldWVUYXNrVG9GaXJlQWN0aXZhdGVFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNl
V29ya2VyVGhyZWFkOjpxdWV1ZVRhc2tUb0ZpcmVQdXNoRXZlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6U2VydmljZVdvcmtlclRocmVhZDo6c3RhcnQpOgorICAgICAgICAqIHdvcmtlcnMvc2Vydmlj
ZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OmFkZFJl
Z2lzdHJhdGlvbkZyb21TdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6dmFsaWRh
dGVSZWdpc3RyYXRpb25Eb21haW4pOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OnNjaGVk
dWxlSm9iKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjpzdGFydFNjcmlwdEZldGNoKToK
KyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjpydW5TZXJ2aWNlV29ya2VySWZOZWNlc3Nhcnkp
OgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OmNyZWF0ZUNvbnRleHRDb25uZWN0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjpwcm9jZXNzUHVzaE1lc3NhZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OmZpcmVGdW5jdGlvbmFsRXZlbnQpOgorCiAyMDIxLTEwLTEy
ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFNjcm9s
bGluZyB0aHJlYWQgYW5pbWF0aW9ucyBuZWVkIHRvIGNvbW1pdCBsYXllcnMgb24gdGhlIHNjcm9s
bGluZyB0aHJlYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNzEyZGFhZTA3N2UzZGJkM2IyODY0NGQwMGFmY2ExNGFi
ZGZjMDAwZi4uMDI1ZWJmNzZiNzZjY2Y0ZWIzNzZiYzY3NmJkYjdlYjcyYWQ5OGZhZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw5NCBAQAorMjAyMS0xMC0xMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgorCisgICAgICAgIERlY3JlYXNlIHVzZSBvZiBtYWtlV2Vha1B0cigpCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE2MTUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEZWNyZWFzZSB1c2Ugb2Yg
bWFrZVdlYWtQdHIoKSBhbmQgdXNlIFdlYWtQdHIgeyB9IGRpcmVjdGx5IGluc3RlYWQuCisKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpnZXRDb25maWd1cmF0aW9uKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6cGVyZm9ybVRhc2tBdE1l
ZGlhVGltZSk6CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2Vy
OjpVbml0OjpVbml0KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXI6OmluaXRpYWxpemUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtMb2FkQ2hlY2tlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtMb2FkQ2hlY2tl
cjo6cHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwOgorICAgICAgICAo
V2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpjYW5ub3RIYW5kbGUpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpjb250cm9sQ2xpZW50KToK
KyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzdGFydEZldGNoKToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyVG9Db250ZXh0Q29u
bmVjdGlvbjo6ZmlyZVB1c2hFdmVudCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUv
Q2FjaGVTdG9yYWdlRW5naW5lLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2FjaGVTdG9yYWdlOjpF
bmdpbmU6OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpDYWNoZVN0b3JhZ2U6OkVuZ2lu
ZTo6d3JpdGVGaWxlKToKKyAgICAgICAgKFdlYktpdDo6Q2FjaGVTdG9yYWdlOjpFbmdpbmU6OnJl
YWRGaWxlKToKKyAgICAgICAgKFdlYktpdDo6Q2FjaGVTdG9yYWdlOjpFbmdpbmU6OmZldGNoRW50
cmllcyk6CisgICAgICAgIChXZWJLaXQ6OkNhY2hlU3RvcmFnZTo6RW5naW5lOjpjbGVhckNhY2hl
c0Zvck9yaWdpbkZyb21EaXNrKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9XZWJT
b2NrZXRUYXNrQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldFRhc2s6OnJlYWRO
ZXh0TWVzc2FnZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0
aW5nLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2NyZWF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5h
dG9yRm9yVGVzdGluZzpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29jb2EvR3JvdXBBY3Rpdml0aWVzL0dyb3VwQWN0aXZpdGllc1Nlc3Npb25Ob3RpZmllci5tbToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnJlZ2lzdGVyTm90aWZpY2F0aW9uT2JzZXJ2ZXJz
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9u
Q29udHJvbGxlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUlFeHRl
bnNpb25Db250cm9sbGVyUHJveHk6OnJlZ2lzdGVyRXh0ZW5zaW9uKToKKyAgICAgICAgKFdlYktp
dDo6V2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHk6OnVucmVnaXN0ZXJFeHRl
bnNpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xs
ZXJQcm94eTo6Y3JlYXRlVGFiRm9yRXh0ZW5zaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5z
cGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHk6OmV2YWx1YXRlU2NyaXB0Rm9yRXh0ZW5z
aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVy
UHJveHk6OnJlbG9hZEZvckV4dGVuc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3Rv
clVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5OjpzaG93RXh0ZW5zaW9uVGFiKToKKyAgICAgICAg
KFdlYktpdDo6V2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHk6OmV2YWx1YXRl
U2NyaXB0SW5FeHRlbnNpb25UYWIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5
OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9TcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlcjo6cmVxdWVzdFNwZWVjaFJlY29n
bml0aW9uU2VydmljZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
UGVybWlzc2lvbk1hbmFnZXI6OnJlcXVlc3RNaWNyb3Bob25lQWNjZXNzKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6cmVxdWVzdFBlcm1pc3Npb25Gb3JSZXF1ZXN0KToKKyAg
ICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmhhbmRsZVJlcXVlc3QpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5OjpmaW5pc2hHcmFudGluZ1JlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cHJvY2Vzc1VzZXJNZWRpYVBlcm1pc3Np
b25WYWxpZFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6Y29tcHV0ZUZpbHRlcmVkRGV2aWNlTGlzdCk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYkRldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNz
Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkRldmljZU9yaWVudGF0aW9uQW5k
TW90aW9uQWNjZXNzQ29udHJvbGxlcjo6c2hvdWxkQWxsb3dBY2Nlc3MpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUxlZ2FjeUNETUZhY3RvcnkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVMZWdhY3lDRE1GYWN0b3J5OjpyZWdpc3RlckZhY3RvcnkpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZh
Y3RvcnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYUVuZ2luZUNvbmZpZ3VyYXRp
b25GYWN0b3J5OjpyZWdpc3RlckZhY3RvcnkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dl
YnJ0Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFs
VW5pdE1hbmFnZXI6OlByb3h5OjpjcmVhdGVSZW1vdGVVbml0KToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwOgorICAgICAgICAoV2ViS2l0
OjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c3RhcnRSZWNvcmRpbmcpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwOgorICAgICAgICAo
V2ViS2l0OjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmluaXRpYWxpemUpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlcjo6
cmVnaXN0ZXJFeHRlbnNpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSUV4dGVu
c2lvbkNvbnRyb2xsZXI6OnVucmVnaXN0ZXJFeHRlbnNpb24pOgorICAgICAgICAoV2ViS2l0OjpX
ZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXI6OmNyZWF0ZVRhYkZvckV4dGVuc2lvbik6
CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlcjo6ZXZh
bHVhdGVTY3JpcHRGb3JFeHRlbnNpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JV
SUV4dGVuc2lvbkNvbnRyb2xsZXI6OnJlbG9hZEZvckV4dGVuc2lvbik6CisgICAgICAgIChXZWJL
aXQ6OldlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlcjo6c2hvd0V4dGVuc2lvblRhYik6
CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlcjo6ZXZh
bHVhdGVTY3JpcHRJbkV4dGVuc2lvblRhYik6CisgICAgICAgICogV2ViUHJvY2Vzcy9NZWRpYVNl
c3Npb24vUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6am9pbik6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZWVrVG8pOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGxheSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpwYXVzZSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZXRUcmFjayk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrTWFuYWdlci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkxpYldlYlJUQ05ldHdvcmtNYW5hZ2VyOjpTdGFydFVwZGF0aW5nKToKKyAg
ICAgICAgKFdlYktpdDo6TGliV2ViUlRDTmV0d29ya01hbmFnZXI6OlN0b3BVcGRhdGluZyk6Cisg
ICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ05ldHdvcmtNYW5hZ2VyOjpDcmVhdGVOYW1lRm9yQWRk
cmVzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9YUi9QbGF0Zm9ybVhSU3lzdGVtUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybVhSU3lzdGVtUHJveHk6OmVudW1lcmF0ZUltbWVy
c2l2ZVhSRGV2aWNlcyk6CisKIDIwMjEtMTAtMTIgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNl
ckBhcHBsZS5jb20+CiAKICAgICAgICAgU2Nyb2xsaW5nIHRocmVhZCBhbmltYXRpb25zIG5lZWQg
dG8gY29tbWl0IGxheWVycyBvbiB0aGUgc2Nyb2xsaW5nIHRocmVhZApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRy
b2xsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVj
dEluc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IDlmNDc5M2Y1M2FhZDAzZDEzMzI0N2IxZTI4
ZmRjN2YzZWQxMTYzNzcuLjZhZTE3OTM5ZjQ4ODU4ZDYwNDZjOTU5MjkyZDM2Y2ZiYzYzNDcxZjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmpl
Y3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTIwMCw3ICsy
MDAsNyBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcjo6cmVwb3J0QVBJ
RXhjZXB0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYQogCiBXZWFrUHRyPENvbnNvbGVDbGllbnQ+
IEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcjo6Y29uc29sZUNsaWVudCgpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIG1ha2VXZWFrUHRyKG1fY29uc29sZUNsaWVudC5nZXQoKSk7CisgICAg
cmV0dXJuIG1fY29uc29sZUNsaWVudC5nZXQoKTsKIH0KIAogYm9vbCBKU0dsb2JhbE9iamVjdElu
c3BlY3RvckNvbnRyb2xsZXI6OmRldmVsb3BlckV4dHJhc0VuYWJsZWQoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmNwcAppbmRleCBhMjllOGRiYThmODMwZmZh
MGMzODg3MDk5YmIwN2EyOWVhOTA1ZDg0Li41MzI5NWI4YTAyZGY0MzQ0ZjRkZGE5YTg3Yjc4ZWM1
NWI3ZThjYjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVt
b3J5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmNwcApA
QCAtNjY5LDExICs2NjksMTEgQEAgdm9pZCBNZW1vcnk6OnJlZ2lzdGVySW5zdGFuY2UoSW5zdGFu
Y2UqIGluc3RhbmNlKQogICAgIHNpemVfdCBjb3VudCA9IG1faW5zdGFuY2VzLnNpemUoKTsKICAg
ICBmb3IgKHNpemVfdCBpbmRleCA9IDA7IGluZGV4IDwgY291bnQ7IGluZGV4KyspIHsKICAgICAg
ICAgaWYgKG1faW5zdGFuY2VzLmF0KGluZGV4KS5nZXQoKSA9PSBudWxscHRyKSB7Ci0gICAgICAg
ICAgICBtX2luc3RhbmNlcy5hdChpbmRleCkgPSBtYWtlV2Vha1B0cigqaW5zdGFuY2UpOworICAg
ICAgICAgICAgbV9pbnN0YW5jZXMuYXQoaW5kZXgpID0gKmluc3RhbmNlOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CiAgICAgfQotICAgIG1faW5zdGFuY2VzLmFwcGVuZChtYWtlV2Vh
a1B0cigqaW5zdGFuY2UpKTsKKyAgICBtX2luc3RhbmNlcy5hcHBlbmQoKmluc3RhbmNlKTsKIH0K
IAogdm9pZCBNZW1vcnk6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL0NhbmNlbGxhYmxlVGFzay5oIGIvU291cmNlL1dURi93dGYvQ2FuY2Vs
bGFibGVUYXNrLmgKaW5kZXggZjQ0YTYxODFlN2EwZGNmNGI0NGNhYmE1NzE2NjBlNTlkZmJlOGEw
ZC4uZGVkMmMxZGMzMGVjOThjNjJmYTBjOGJmMGM5MjRmMGZkNmNhYjZhYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvQ2FuY2VsbGFibGVUYXNrLmgKKysrIGIvU291cmNlL1dURi93dGYvQ2Fu
Y2VsbGFibGVUYXNrLmgKQEAgLTU0LDcgKzU0LDcgQEAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBj
bGVhcigpIHsgbV9pbXBsID0gbnVsbHB0cjsgfQogICAgIHByaXZhdGU6CiAgICAgICAgIGZyaWVu
ZCBjbGFzcyBUYXNrQ2FuY2VsbGF0aW9uR3JvdXA7Ci0gICAgICAgIGV4cGxpY2l0IEhhbmRsZShJ
bXBsJiBpbXBsKSA6IG1faW1wbChtYWtlV2Vha1B0cihpbXBsKSkgeyB9CisgICAgICAgIGV4cGxp
Y2l0IEhhbmRsZShJbXBsJiBpbXBsKSA6IG1faW1wbChpbXBsKSB7IH0KICAgICAgICAgV2Vha1B0
cjxJbXBsPiBtX2ltcGw7CiAgICAgfTsKICAgICBIYW5kbGUgY3JlYXRlSGFuZGxlKCkgeyByZXR1
cm4gSGFuZGxlIHsgbV9pbXBsIH07IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xpc3RI
YXNoU2V0LmggYi9Tb3VyY2UvV1RGL3d0Zi9MaXN0SGFzaFNldC5oCmluZGV4IGQ4MjBhMDkwZTg2
N2FjOTQwY2JiMzMxYWE2OGM2MWMwYzQ1ZWY0OTYuLjkxNjQ1NjZjZDIzN2QwZmEyZjcxZWNjMGYz
Njg4NjY4ODFkODdmZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0xpc3RIYXNoU2V0LmgK
KysrIGIvU291cmNlL1dURi93dGYvTGlzdEhhc2hTZXQuaApAQCAtMjU5LDggKzI1OSw4IEBAIHBy
aXZhdGU6CiAgICAgICAgIDogbV9zZXQoc2V0KQogICAgICAgICAsIG1fcG9zaXRpb24ocG9zaXRp
b24pCiAjaWYgQ0hFQ0tfSEFTSFRBQkxFX0lURVJBVE9SUwotICAgICAgICAsIG1fd2Vha1NldCht
YWtlV2Vha1B0cihzZXQpKQotICAgICAgICAsIG1fd2Vha1Bvc2l0aW9uKG1ha2VXZWFrUHRyKHBv
c2l0aW9uKSkKKyAgICAgICAgLCBtX3dlYWtTZXQoc2V0KQorICAgICAgICAsIG1fd2Vha1Bvc2l0
aW9uKHBvc2l0aW9uKQogI2VuZGlmCiAgICAgewogICAgIH0KQEAgLTI5NSw3ICsyOTUsNyBAQCBw
dWJsaWM6CiAgICAgICAgIEFTU0VSVChtX3Bvc2l0aW9uKTsKICAgICAgICAgbV9wb3NpdGlvbiA9
IG1fcG9zaXRpb24tPm1fbmV4dDsKICNpZiBDSEVDS19IQVNIVEFCTEVfSVRFUkFUT1JTCi0gICAg
ICAgIG1fd2Vha1Bvc2l0aW9uID0gbWFrZVdlYWtQdHIobV9wb3NpdGlvbik7CisgICAgICAgIG1f
d2Vha1Bvc2l0aW9uID0gbV9wb3NpdGlvbjsKICNlbmRpZgogICAgICAgICByZXR1cm4gKnRoaXM7
CiAgICAgfQpAQCAtMzE0LDcgKzMxNCw3IEBAIHB1YmxpYzoKICAgICAgICAgZWxzZQogICAgICAg
ICAgICAgbV9wb3NpdGlvbiA9IG1fcG9zaXRpb24tPm1fcHJldjsKICNpZiBDSEVDS19IQVNIVEFC
TEVfSVRFUkFUT1JTCi0gICAgICAgIG1fd2Vha1Bvc2l0aW9uID0gbWFrZVdlYWtQdHIobV9wb3Np
dGlvbik7CisgICAgICAgIG1fd2Vha1Bvc2l0aW9uID0gbV9wb3NpdGlvbjsKICNlbmRpZgogICAg
ICAgICByZXR1cm4gKnRoaXM7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV2Vh
a0hhc2hTZXQuaCBiL1NvdXJjZS9XVEYvd3RmL1dlYWtIYXNoU2V0LmgKaW5kZXggOTliYjM0YmVl
NGExYjA4NDU5NWU5ZDAyMzdjY2Q5ZWRlYjNmNWJjYS4uZWU3YjMyOWJmNzMzODU0YjEzZjNkODVk
MzcxMzk5YjJhZDI1OTFhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvV2Vha0hhc2hTZXQu
aAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9XZWFrSGFzaFNldC5oCkBAIC0xMzMsNyArMTMzLDcgQEAg
cHVibGljOgogICAgIHsKICAgICAgICAgYXV0byBpdGVtcyA9IG1hcChtX3NldCwgW10oY29uc3Qg
UmVmPFdlYWtQdHJJbXBsPENvdW50ZXI+PiYgaXRlbSkgewogICAgICAgICAgICAgYXV0byogcG9p
bnRlciA9IHN0YXRpY19jYXN0PFQqPihpdGVtLT50ZW1wbGF0ZSBnZXQ8VD4oKSk7Ci0gICAgICAg
ICAgICByZXR1cm4gbWFrZVdlYWtQdHIocG9pbnRlcik7CisgICAgICAgICAgICByZXR1cm4gV2Vh
a1B0ciB7IHBvaW50ZXIgfTsKICAgICAgICAgfSk7CiAgICAgICAgIGZvciAoYXV0byYgaXRlbSA6
IGl0ZW1zKSB7CiAgICAgICAgICAgICBpZiAoaXRlbSAmJiBtX3NldC5jb250YWlucygqaXRlbS5t
X2ltcGwpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRp
YS9NZWRpYUtleVNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRt
ZWRpYS9NZWRpYUtleVNlc3Npb24uY3BwCmluZGV4IDViNWI0YmZhNjA3OThlMTk0ZjgzZTZiYTI1
MjEwMTAyNDVmZTJiNmIuLjhiZmIxY2U3MDFhMmY1YTY5YjViNTE5OTFhYTg2MzJlYmI4OTI1Zjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFL
ZXlTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlh
L01lZGlhS2V5U2Vzc2lvbi5jcHAKQEAgLTIyMyw3ICsyMjMsNyBAQCB2b2lkIE1lZGlhS2V5U2Vz
c2lvbjo6Z2VuZXJhdGVSZXF1ZXN0KGNvbnN0IEF0b21TdHJpbmcmIGluaXREYXRhVHlwZSwgY29u
c3QgQnVmZgogICAgICAgICAgICAgbV9sYXRlc3REZWNyeXB0VGltZSA9IDA7CiAgICAgICAgIH0K
IAotICAgICAgICBtX2luc3RhbmNlU2Vzc2lvbi0+cmVxdWVzdExpY2Vuc2UobV9zZXNzaW9uVHlw
ZSwgaW5pdERhdGFUeXBlLCBzYW5pdGl6ZWRJbml0RGF0YS5yZWxlYXNlTm9uTnVsbCgpLCBbdGhp
cywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqd2Vha1RoaXMpLCBwcm9taXNlID0gV1RGTW92ZShw
cm9taXNlKSwgaWRlbnRpZmllciA9IFdURk1vdmUoaWRlbnRpZmllcildIChSZWY8U2hhcmVkQnVm
ZmVyPiYmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkLCBib29sIG5lZWRzSW5kaXZp
ZHVhbGl6YXRpb24sIENETUluc3RhbmNlU2Vzc2lvbjo6U3VjY2Vzc1ZhbHVlIHN1Y2NlZWRlZCkg
bXV0YWJsZSB7CisgICAgICAgIG1faW5zdGFuY2VTZXNzaW9uLT5yZXF1ZXN0TGljZW5zZShtX3Nl
c3Npb25UeXBlLCBpbml0RGF0YVR5cGUsIHNhbml0aXplZEluaXREYXRhLnJlbGVhc2VOb25OdWxs
KCksIFt0aGlzLCB3ZWFrVGhpcywgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIGlkZW50aWZp
ZXIgPSBXVEZNb3ZlKGlkZW50aWZpZXIpXSAoUmVmPFNoYXJlZEJ1ZmZlcj4mJiBtZXNzYWdlLCBj
b25zdCBTdHJpbmcmIHNlc3Npb25JZCwgYm9vbCBuZWVkc0luZGl2aWR1YWxpemF0aW9uLCBDRE1J
bnN0YW5jZVNlc3Npb246OlN1Y2Nlc3NWYWx1ZSBzdWNjZWVkZWQpIG11dGFibGUgewogICAgICAg
ICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTMyNCw3
ICszMjQsNyBAQCB2b2lkIE1lZGlhS2V5U2Vzc2lvbjo6bG9hZChjb25zdCBTdHJpbmcmIHNlc3Np
b25JZCwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taQogICAgICAgICAvLyA4LjYuIExldCBt
ZXNzYWdlIHR5cGUgYmUgbnVsbC4KICAgICAgICAgLy8gOC43LiBMZXQgY2RtIGJlIHRoZSBDRE0g
aW5zdGFuY2UgcmVwcmVzZW50ZWQgYnkgdGhpcyBvYmplY3QncyBjZG0gaW5zdGFuY2UgdmFsdWUu
CiAgICAgICAgIC8vIDguOC4gVXNlIHRoZSBjZG0gdG8gZXhlY3V0ZSB0aGUgZm9sbG93aW5nIHN0
ZXBzOgotICAgICAgICBtX2luc3RhbmNlU2Vzc2lvbi0+bG9hZFNlc3Npb24obV9zZXNzaW9uVHlw
ZSwgKnNhbml0aXplZFNlc3Npb25JZCwgb3JpZ2luLCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vh
a1B0cigqd2Vha1RoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgc2FuaXRpemVkU2Vz
c2lvbklkID0gKnNhbml0aXplZFNlc3Npb25JZCwgaWRlbnRpZmllciA9IFdURk1vdmUoaWRlbnRp
ZmllcildIChzdGQ6Om9wdGlvbmFsPENETUluc3RhbmNlU2Vzc2lvbjo6S2V5U3RhdHVzVmVjdG9y
PiYmIGtub3duS2V5cywgc3RkOjpvcHRpb25hbDxkb3VibGU+JiYgZXhwaXJhdGlvbiwgc3RkOjpv
cHRpb25hbDxDRE1JbnN0YW5jZVNlc3Npb246Ok1lc3NhZ2U+JiYgbWVzc2FnZSwgQ0RNSW5zdGFu
Y2VTZXNzaW9uOjpTdWNjZXNzVmFsdWUgc3VjY2VlZGVkLCBDRE1JbnN0YW5jZVNlc3Npb246OlNl
c3Npb25Mb2FkRmFpbHVyZSBmYWlsdXJlKSBtdXRhYmxlIHsKKyAgICAgICAgbV9pbnN0YW5jZVNl
c3Npb24tPmxvYWRTZXNzaW9uKG1fc2Vzc2lvblR5cGUsICpzYW5pdGl6ZWRTZXNzaW9uSWQsIG9y
aWdpbiwgW3RoaXMsIHdlYWtUaGlzLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgc2FuaXRp
emVkU2Vzc2lvbklkID0gKnNhbml0aXplZFNlc3Npb25JZCwgaWRlbnRpZmllciA9IFdURk1vdmUo
aWRlbnRpZmllcildIChzdGQ6Om9wdGlvbmFsPENETUluc3RhbmNlU2Vzc2lvbjo6S2V5U3RhdHVz
VmVjdG9yPiYmIGtub3duS2V5cywgc3RkOjpvcHRpb25hbDxkb3VibGU+JiYgZXhwaXJhdGlvbiwg
c3RkOjpvcHRpb25hbDxDRE1JbnN0YW5jZVNlc3Npb246Ok1lc3NhZ2U+JiYgbWVzc2FnZSwgQ0RN
SW5zdGFuY2VTZXNzaW9uOjpTdWNjZXNzVmFsdWUgc3VjY2VlZGVkLCBDRE1JbnN0YW5jZVNlc3Np
b246OlNlc3Npb25Mb2FkRmFpbHVyZSBmYWlsdXJlKSBtdXRhYmxlIHsKICAgICAgICAgICAgIC8v
IDguOC4xLiBJZiB0aGVyZSBpcyBubyBkYXRhIHN0b3JlZCBmb3IgdGhlIHNhbml0aXplZCBzZXNz
aW9uIElEIGluIHRoZSBvcmlnaW4sIHJlc29sdmUgcHJvbWlzZSB3aXRoIGZhbHNlIGFuZCBhYm9y
dCB0aGVzZSBzdGVwcy4KICAgICAgICAgICAgIC8vIDguOC4yLiBJZiB0aGUgc3RvcmVkIHNlc3Np
b24ncyBzZXNzaW9uIHR5cGUgaXMgbm90IHRoZSBzYW1lIGFzIHRoZSBjdXJyZW50IE1lZGlhS2V5
U2Vzc2lvbiBzZXNzaW9uIHR5cGUsIHJlamVjdCBwcm9taXNlIHdpdGggYSBuZXdseSBjcmVhdGVk
IFR5cGVFcnJvci4KICAgICAgICAgICAgIC8vIDguOC4zLiBMZXQgc2Vzc2lvbiBkYXRhIGJlIHRo
ZSBkYXRhIHN0b3JlZCBmb3IgdGhlIHNhbml0aXplZCBzZXNzaW9uIElEIGluIHRoZSBvcmlnaW4u
IFRoaXMgbXVzdCBub3QgaW5jbHVkZSBkYXRhIGZyb20gb3RoZXIgb3JpZ2luKHMpIG9yIHRoYXQg
aXMgbm90IGFzc29jaWF0ZWQgd2l0aCBhbiBvcmlnaW4uCkBAIC00MzYsNyArNDM2LDcgQEAgdm9p
ZCBNZWRpYUtleVNlc3Npb246OnVwZGF0ZShjb25zdCBCdWZmZXJTb3VyY2UmIHJlc3BvbnNlLCBS
ZWY8RGVmZXJyZWRQcm9taXNlPiYKICAgICAgICAgLy8gNi41LiBMZXQgc2Vzc2lvbiBjbG9zZWQg
YmUgZmFsc2UuCiAgICAgICAgIC8vIDYuNi4gTGV0IGNkbSBiZSB0aGUgQ0RNIGluc3RhbmNlIHJl
cHJlc2VudGVkIGJ5IHRoaXMgb2JqZWN0J3MgY2RtIGluc3RhbmNlIHZhbHVlLgogICAgICAgICAv
LyA2LjcuIFVzZSB0aGUgY2RtIHRvIGV4ZWN1dGUgdGhlIGZvbGxvd2luZyBzdGVwczoKLSAgICAg
ICAgbV9pbnN0YW5jZVNlc3Npb24tPnVwZGF0ZUxpY2Vuc2UobV9zZXNzaW9uSWQsIG1fc2Vzc2lv
blR5cGUsIHNhbml0aXplZFJlc3BvbnNlLnJlbGVhc2VOb25OdWxsKCksIFt0aGlzLCB3ZWFrVGhp
cyA9IG1ha2VXZWFrUHRyKCp3ZWFrVGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCBp
ZGVudGlmaWVyID0gV1RGTW92ZShpZGVudGlmaWVyKV0gKGJvb2wgc2Vzc2lvbldhc0Nsb3NlZCwg
c3RkOjpvcHRpb25hbDxDRE1JbnN0YW5jZVNlc3Npb246OktleVN0YXR1c1ZlY3Rvcj4mJiBjaGFu
Z2VkS2V5cywgc3RkOjpvcHRpb25hbDxkb3VibGU+JiYgY2hhbmdlZEV4cGlyYXRpb24sIHN0ZDo6
b3B0aW9uYWw8Q0RNSW5zdGFuY2VTZXNzaW9uOjpNZXNzYWdlPiYmIG1lc3NhZ2UsIENETUluc3Rh
bmNlU2Vzc2lvbjo6U3VjY2Vzc1ZhbHVlIHN1Y2NlZWRlZCkgbXV0YWJsZSB7CisgICAgICAgIG1f
aW5zdGFuY2VTZXNzaW9uLT51cGRhdGVMaWNlbnNlKG1fc2Vzc2lvbklkLCBtX3Nlc3Npb25UeXBl
LCBzYW5pdGl6ZWRSZXNwb25zZS5yZWxlYXNlTm9uTnVsbCgpLCBbdGhpcywgd2Vha1RoaXMsIHBy
b21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCBpZGVudGlmaWVyID0gV1RGTW92ZShpZGVudGlmaWVy
KV0gKGJvb2wgc2Vzc2lvbldhc0Nsb3NlZCwgc3RkOjpvcHRpb25hbDxDRE1JbnN0YW5jZVNlc3Np
b246OktleVN0YXR1c1ZlY3Rvcj4mJiBjaGFuZ2VkS2V5cywgc3RkOjpvcHRpb25hbDxkb3VibGU+
JiYgY2hhbmdlZEV4cGlyYXRpb24sIHN0ZDo6b3B0aW9uYWw8Q0RNSW5zdGFuY2VTZXNzaW9uOjpN
ZXNzYWdlPiYmIG1lc3NhZ2UsIENETUluc3RhbmNlU2Vzc2lvbjo6U3VjY2Vzc1ZhbHVlIHN1Y2Nl
ZWRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAg
ICAgIHJldHVybjsKIApAQCAtNTU3LDcgKzU1Nyw3IEBAIHZvaWQgTWVkaWFLZXlTZXNzaW9uOjpj
bG9zZShSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiAgICAgcXVldWVUYXNrS2VlcGlu
Z09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpOZXR3b3JraW5nLCBbdGhpcywgd2Vha1Ro
aXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIGlkZW50
aWZpZXIgPSBXVEZNb3ZlKGlkZW50aWZpZXIpXSAoKSBtdXRhYmxlIHsKICAgICAgICAgLy8gNS4x
LiBMZXQgY2RtIGJlIHRoZSBDRE0gaW5zdGFuY2UgcmVwcmVzZW50ZWQgYnkgc2Vzc2lvbidzIGNk
bSBpbnN0YW5jZSB2YWx1ZS4KICAgICAgICAgLy8gNS4yLiBVc2UgY2RtIHRvIGNsb3NlIHRoZSBr
ZXkgc2Vzc2lvbiBhc3NvY2lhdGVkIHdpdGggc2Vzc2lvbi4KLSAgICAgICAgbV9pbnN0YW5jZVNl
c3Npb24tPmNsb3NlU2Vzc2lvbihtX3Nlc3Npb25JZCwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdl
YWtQdHIoKndlYWtUaGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIGlkZW50aWZpZXIg
PSBXVEZNb3ZlKGlkZW50aWZpZXIpXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgbV9pbnN0YW5jZVNl
c3Npb24tPmNsb3NlU2Vzc2lvbihtX3Nlc3Npb25JZCwgW3RoaXMsIHdlYWtUaGlzLCBwcm9taXNl
ID0gV1RGTW92ZShwcm9taXNlKSwgaWRlbnRpZmllciA9IFdURk1vdmUoaWRlbnRpZmllcildICgp
IG11dGFibGUgewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgICAgICBy
ZXR1cm47CiAKQEAgLTYwMSw3ICs2MDEsNyBAQCB2b2lkIE1lZGlhS2V5U2Vzc2lvbjo6cmVtb3Zl
KFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKICAgICAgICAgLy8gNC4zLiBMZXQgbWVz
c2FnZSB0eXBlIGJlIG51bGwuCiAKICAgICAgICAgLy8gNC40LiBVc2UgdGhlIGNkbSB0byBleGVj
dXRlIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgICAgIG1faW5zdGFuY2VTZXNzaW9uLT5yZW1v
dmVTZXNzaW9uRGF0YShtX3Nlc3Npb25JZCwgbV9zZXNzaW9uVHlwZSwgW3RoaXMsIHdlYWtUaGlz
ID0gbWFrZVdlYWtQdHIoKndlYWtUaGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIGlk
ZW50aWZpZXIgPSBXVEZNb3ZlKGlkZW50aWZpZXIpXSAoQ0RNSW5zdGFuY2VTZXNzaW9uOjpLZXlT
dGF0dXNWZWN0b3ImJiBrZXlzLCBzdGQ6Om9wdGlvbmFsPFJlZjxTaGFyZWRCdWZmZXI+PiYmIG1l
c3NhZ2UsIENETUluc3RhbmNlU2Vzc2lvbjo6U3VjY2Vzc1ZhbHVlIHN1Y2NlZWRlZCkgbXV0YWJs
ZSB7CisgICAgICAgIG1faW5zdGFuY2VTZXNzaW9uLT5yZW1vdmVTZXNzaW9uRGF0YShtX3Nlc3Np
b25JZCwgbV9zZXNzaW9uVHlwZSwgW3RoaXMsIHdlYWtUaGlzLCBwcm9taXNlID0gV1RGTW92ZShw
cm9taXNlKSwgaWRlbnRpZmllciA9IFdURk1vdmUoaWRlbnRpZmllcildIChDRE1JbnN0YW5jZVNl
c3Npb246OktleVN0YXR1c1ZlY3RvciYmIGtleXMsIHN0ZDo6b3B0aW9uYWw8UmVmPFNoYXJlZEJ1
ZmZlcj4+JiYgbWVzc2FnZSwgQ0RNSW5zdGFuY2VTZXNzaW9uOjpTdWNjZXNzVmFsdWUgc3VjY2Vl
ZGVkKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRl
ZG1lZGlhL01lZGlhS2V5U3lzdGVtQWNjZXNzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1BY2Nlc3MuY3BwCmluZGV4IGY4YzFmZGIzZTZl
NWM2ODNjNDRhNzQxMzA5YzZjZDkzNTUxYTUyY2IuLmIyZTgwY2MxZGM1ZmZlMDFiMWEwZWMyYjI4
NDVlNmYyMDVmYTc3Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlw
dGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1BY2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1BY2Nlc3MuY3BwCkBAIC02NCw3ICs2
NCw3IEBAIHZvaWQgTWVkaWFLZXlTeXN0ZW1BY2Nlc3M6OmNyZWF0ZU1lZGlhS2V5cyhEb2N1bWVu
dCYgZG9jdW1lbnQsIFJlZjxEZWZlcnJlZFByb21pCiAgICAgLy8gV2hlbiB0aGlzIG1ldGhvZCBp
cyBpbnZva2VkLCB0aGUgdXNlciBhZ2VudCBtdXN0IHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgog
ICAgIC8vIDEuIExldCBwcm9taXNlIGJlIGEgbmV3IHByb21pc2UuCiAgICAgLy8gMi4gUnVuIHRo
ZSBmb2xsb3dpbmcgc3RlcHMgaW4gcGFyYWxsZWw6Ci0gICAgZG9jdW1lbnQuZXZlbnRMb29wKCku
cXVldWVUYXNrKFRhc2tTb3VyY2U6Ok1lZGlhRWxlbWVudCwgW3RoaXMsIHdlYWtUaGlzID0gV2Vh
a1B0ciB7ICp0aGlzIH0sIHdlYWtEb2N1bWVudCA9IG1ha2VXZWFrUHRyKGRvY3VtZW50KSwgcHJv
bWlzZSA9IFdURk1vdmUocHJvbWlzZSldICgpIG11dGFibGUgeworICAgIGRvY3VtZW50LmV2ZW50
TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpNZWRpYUVsZW1lbnQsIFt0aGlzLCB3ZWFrVGhp
cyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB3ZWFrRG9jdW1lbnQgPSBXZWFrUHRyIHsgZG9jdW1lbnQg
fSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldICgpIG11dGFibGUgewogICAgICAgICBSZWZQ
dHIgcHJvdGVjdGVkVGhpcyA9IHdlYWtUaGlzLmdldCgpOwogICAgICAgICBpZiAoIXByb3RlY3Rl
ZFRoaXMpCiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtQ29udHJvbGxl
ci5jcHAKaW5kZXggMTYzOGIzNTNiNWZiMGZiZmEwMzY4ZDVkMDEyNjFjZmMxMTgzNjA3MS4uMjdj
MjZmYmNlNTVkMWJkZjFkNjBkZDg2MzM1YjI4YTlkYTUxNGMzMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlT
eXN0ZW1Db250cm9sbGVyLmNwcApAQCAtNDgsNyArNDgsNyBAQCBNZWRpYUtleVN5c3RlbUNvbnRy
b2xsZXIqIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcjo6ZnJvbShQYWdlKiBwYWdlKQogfQogCiBN
ZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6Ok1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcihNZWRpYUtl
eVN5c3RlbUNsaWVudCYgY2xpZW50KQotICAgIDogbV9jbGllbnQobWFrZVdlYWtQdHIoY2xpZW50
KSkKKyAgICA6IG1fY2xpZW50KGNsaWVudCkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuY3BwCmluZGV4IDA3OGIzOTQwODUx
YTFiYmE3MmZhNzUwNWQzMzIzZGUzZDkxYzllMGQuLjgzYjI0YWNlYWE1YjEyOTRiYjRlYTQzOWZi
MmQ1YzRmNmNjZDQ3NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlw
dGVkbWVkaWEvTWVkaWFLZXlzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5
cHRlZG1lZGlhL01lZGlhS2V5cy5jcHAKQEAgLTY2LDcgKzY2LDcgQEAgTWVkaWFLZXlzOjpNZWRp
YUtleXMoRG9jdW1lbnQmIGRvY3VtZW50LCBib29sIHVzZURpc3RpbmN0aXZlSWRlbnRpZmllciwg
Ym9vbCBwZXIKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGRvY3VtZW50KTsKICNlbmRpZgotICAg
IG1faW5zdGFuY2UtPnNldENsaWVudChtYWtlV2Vha1B0cih0aGlzKSk7CisgICAgbV9pbnN0YW5j
ZS0+c2V0Q2xpZW50KCp0aGlzKTsKIH0KIAogTWVkaWFLZXlzOjp+TWVkaWFLZXlzKCkgPSBkZWZh
dWx0OwpAQCAtMTAwLDcgKzEwMCw3IEBAIEV4Y2VwdGlvbk9yPFJlZjxNZWRpYUtleVNlc3Npb24+
PiBNZWRpYUtleXM6OmNyZWF0ZVNlc3Npb24oRG9jdW1lbnQmIGRvY3VtZW50LCBNCiAgICAgLy8g
My4gTGV0IHNlc3Npb24gYmUgYSBuZXcgTWVkaWFLZXlTZXNzaW9uIG9iamVjdCwgYW5kIGluaXRp
YWxpemUgaXQgYXMgZm9sbG93czoKICAgICAvLyBOT1RFOiBDb250aW51ZWQgaW4gTWVkaWFLZXlT
ZXNzaW9uLgogICAgIC8vIDQuIFJldHVybiBzZXNzaW9uLgotICAgIGF1dG8gc2Vzc2lvbiA9IE1l
ZGlhS2V5U2Vzc2lvbjo6Y3JlYXRlKGRvY3VtZW50LCBtYWtlV2Vha1B0cigqdGhpcyksIHNlc3Np
b25UeXBlLCBtX3VzZURpc3RpbmN0aXZlSWRlbnRpZmllciwgbV9pbXBsZW1lbnRhdGlvbi5jb3B5
UmVmKCksIGluc3RhbmNlU2Vzc2lvbi5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICBhdXRvIHNlc3Np
b24gPSBNZWRpYUtleVNlc3Npb246OmNyZWF0ZShkb2N1bWVudCwgKnRoaXMsIHNlc3Npb25UeXBl
LCBtX3VzZURpc3RpbmN0aXZlSWRlbnRpZmllciwgbV9pbXBsZW1lbnRhdGlvbi5jb3B5UmVmKCks
IGluc3RhbmNlU2Vzc2lvbi5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICBJTkZPX0xPRyhpZGVudGlm
aWVyLCAiQ3JlYXRlZCBzZXNzaW9uIik7CiAgICAgbV9zZXNzaW9ucy5hcHBlbmQoc2Vzc2lvbi5j
b3B5UmVmKCkpOwogICAgIHJldHVybiBzZXNzaW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9sZWdhY3kvV2ViS2l0TWVkaWFLZXlzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvbGVnYWN5L1dlYktpdE1lZGlhS2V5
cy5jcHAKaW5kZXggNjIzMGRlNWIyNjk4NzBmYzg4YTlkMjFmODI4N2E1YjQ1MWI3MjU2Zi4uMTgx
YTgzOTQyYjA0MGM3MmMyOWRjZWFmMzRhZjM2ZjQzN2RlZTY1ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9sZWdhY3kvV2ViS2l0TWVkaWFLZXlzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL2xlZ2FjeS9XZWJL
aXRNZWRpYUtleXMuY3BwCkBAIC0xMzQsNyArMTM0LDcgQEAgdm9pZCBXZWJLaXRNZWRpYUtleXM6
OnNldE1lZGlhRWxlbWVudChIVE1MTWVkaWFFbGVtZW50KiBlbGVtZW50KQogICAgICAgICBtX21l
ZGlhRWxlbWVudC0+cGxheWVyKCktPnNldENETShudWxscHRyKTsKICAgICB9CiAKLSAgICBtX21l
ZGlhRWxlbWVudCA9IG1ha2VXZWFrUHRyKGVsZW1lbnQpOworICAgIG1fbWVkaWFFbGVtZW50ID0g
ZWxlbWVudDsKIAogICAgIGlmIChtX21lZGlhRWxlbWVudCAmJiBtX21lZGlhRWxlbWVudC0+cGxh
eWVyKCkpIHsKICAgICAgICAgbV9tZWRpYUVsZW1lbnQtPnBsYXllcigpLT5zZXRDRE0obV9jZG0u
Z2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJv
ZHlTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlTb3Vy
Y2UuY3BwCmluZGV4IDUxMmUyM2U4MjY0OWE5MTQyNWRkY2I3NWMzM2FjODE3OWJiNjZmZWYuLjA3
NTUxODcyOTRhZjFmMGUxN2E5MGYwM2NhODdhNzJlY2I0Y2EwMDYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5U291cmNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keVNvdXJjZS5jcHAKQEAgLTMyLDcgKzMyLDcg
QEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogRmV0Y2hCb2R5U291cmNlOjpGZXRjaEJvZHlTb3Vy
Y2UoRmV0Y2hCb2R5T3duZXImIGJvZHlPd25lcikKLSAgICA6IG1fYm9keU93bmVyKG1ha2VXZWFr
UHRyKGJvZHlPd25lcikpCisgICAgOiBtX2JvZHlPd25lcihib2R5T3duZXIpCiB7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuY3BwCmluZGV4IGFi
ODAzMjc1NmNjZTRmNjM3NDBkMTc4NWQ0ODA1MWE0MWY1NDQ0YmUuLjVkNDUyY2UyODhjZWRjMDI5
MzJkOTM5NmY2NDYwMDQ2ZTQ2YmQ1MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
ZXRjaC9GZXRjaFJlc3BvbnNlLmNwcApAQCAtMTk3LDcgKzE5Nyw3IEBAIEV4Y2VwdGlvbk9yPFJl
ZjxGZXRjaFJlc3BvbnNlPj4gRmV0Y2hSZXNwb25zZTo6Y2xvbmUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgY29uCiB2b2lkIEZldGNoUmVzcG9uc2U6OmFkZEFib3J0U3RlcHMoUmVmPEFib3J0U2ln
bmFsPiYmIHNpZ25hbCkKIHsKICAgICBtX2Fib3J0U2lnbmFsID0gV1RGTW92ZShzaWduYWwpOwot
ICAgIG1fYWJvcnRTaWduYWwtPmFkZEFsZ29yaXRobShbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vh
a1B0cih0aGlzKV0geworICAgIG1fYWJvcnRTaWduYWwtPmFkZEFsZ29yaXRobShbdGhpcywgd2Vh
a1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0gewogICAgICAgICAvLyBGSVhNRTogQ2FuY2VsIHJl
cXVlc3QgYm9keSBpZiBpdCBpcyBhIHN0cmVhbS4KICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAg
ICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggMzc2NDEzMmFlZjNhYzAwNzEzNjQ4OGU3MDZlNzk0OWRi
ODY2NzEwYi4uNzQyMGVlZDFlMGRkYjVlNTAxOTM4OWIxOTljOTNhNGNjMjBkYTVkZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAg
LTM4LDcgKzM4LDcgQEAgUmVmPFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4gV29y
a2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGUKIH0KIAogV29ya2VyRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24o
V29ya2VyR2xvYmFsU2NvcGUmIHNjb3BlLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
PiYmIGNvbm5lY3Rpb24pCi0gICAgOiBtX3Njb3BlKG1ha2VXZWFrUHRyKHNjb3BlKSkKKyAgICA6
IG1fc2NvcGUoc2NvcGUpCiAgICAgLCBtX21haW5UaHJlYWRDb25uZWN0aW9uKFdURk1vdmUoY29u
bmVjdGlvbikpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVw
YWQvR2FtZXBhZE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nYW1lcGFkL0dh
bWVwYWRNYW5hZ2VyLmNwcAppbmRleCBiNWM3ZmY4MGUxZTI1YjYxMWZiNjc1MDc1ZjNlOWU2MmMw
ZTUzNTc5Li5jYzM3NDg1OGNmZWExYjI0NGMwNGJkNDFiMjk5NDhkMjlhZWEzMDMwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvR2FtZXBhZE1hbmFnZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkTWFuYWdlci5jcHAKQEAg
LTgxLDcgKzgxLDcgQEAgdm9pZCBHYW1lcGFkTWFuYWdlcjo6cGxhdGZvcm1HYW1lcGFkRGlzY29u
bmVjdGVkKFBsYXRmb3JtR2FtZXBhZCYgcGxhdGZvcm1HYW1lcGEKIHsKICAgICBWZWN0b3I8V2Vh
a1B0cjxET01XaW5kb3c+PiB3ZWFrV2luZG93czsKICAgICBmb3IgKGF1dG8qIGRvbVdpbmRvdyA6
IG1fZG9tV2luZG93cykKLSAgICAgICAgd2Vha1dpbmRvd3MuYXBwZW5kKG1ha2VXZWFrUHRyKCpk
b21XaW5kb3cpKTsKKyAgICAgICAgd2Vha1dpbmRvd3MuYXBwZW5kKCpkb21XaW5kb3cpOwogCiAg
ICAgSGFzaFNldDxOYXZpZ2F0b3JHYW1lcGFkKj4gbm90aWZpZWROYXZpZ2F0b3JzOwogCkBAIC0x
NDUsNyArMTQ1LDcgQEAgdm9pZCBHYW1lcGFkTWFuYWdlcjo6bWFrZUdhbWVwYWRWaXNpYmxlKFBs
YXRmb3JtR2FtZXBhZCYgcGxhdGZvcm1HYW1lcGFkLCBIYXNoU2UKIAogICAgIFZlY3RvcjxXZWFr
UHRyPERPTVdpbmRvdz4+IHdlYWtXaW5kb3dzOwogICAgIGZvciAoYXV0byogZG9tV2luZG93IDog
bV9kb21XaW5kb3dzKQotICAgICAgICB3ZWFrV2luZG93cy5hcHBlbmQobWFrZVdlYWtQdHIoKmRv
bVdpbmRvdykpOworICAgICAgICB3ZWFrV2luZG93cy5hcHBlbmQoKmRvbVdpbmRvdyk7CiAKICAg
ICBmb3IgKGF1dG8mIHdpbmRvdyA6IHdlYWtXaW5kb3dzKSB7CiAgICAgICAgIC8vIEV2ZW50IGRp
c3BhdGNoIG1pZ2h0IGhhdmUgbWFkZSB0aGlzIHdpbmRvdyBnbyBhd2F5LgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcAppbmRleCA0OWU3
NzdmMzY1ODE2ZGMyNzM2MjFkMGNmYTVkOWM1MjhlYTkxN2U4Li5lMjcyZWNkZWYyYTdkMDY2YTEy
MWVjMzY2YTk5MDZkNGI4ZGIxNGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcApAQCAtMTQwLDcgKzE0MCw3IEBAIFJlZjxHZW9s
b2NhdGlvbj4gR2VvbG9jYXRpb246OmNyZWF0ZShOYXZpZ2F0b3ImIG5hdmlnYXRvcikKIAogR2Vv
bG9jYXRpb246Okdlb2xvY2F0aW9uKE5hdmlnYXRvciYgbmF2aWdhdG9yKQogICAgIDogQWN0aXZl
RE9NT2JqZWN0KG5hdmlnYXRvci5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCi0gICAgLCBtX25h
dmlnYXRvcihtYWtlV2Vha1B0cihuYXZpZ2F0b3IpKQorICAgICwgbV9uYXZpZ2F0b3IobmF2aWdh
dG9yKQogICAgICwgbV9yZXN1bWVUaW1lcigqdGhpcywgJkdlb2xvY2F0aW9uOjpyZXN1bWVUaW1l
ckZpcmVkKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGln
aHQvQXBwSGlnaGxpZ2h0U3RvcmFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hs
aWdodC9BcHBIaWdobGlnaHRTdG9yYWdlLmNwcAppbmRleCAxZjEyMTFiNjViN2Q3NTg4NGJlNDc5
ZDE4ZGQyOWY3Y2Q4ZTAxY2FmLi5kYzM5YTBmMGQxOGZmZmNhN2RmYjQ2NTIxOWNkNjEyYTlmNzM4
ZjhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9BcHBIaWdo
bGlnaHRTdG9yYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9B
cHBIaWdobGlnaHRTdG9yYWdlLmNwcApAQCAtMjE4LDcgKzIxOCw3IEBAIHN0YXRpYyBBcHBIaWdo
bGlnaHRSYW5nZURhdGEgY3JlYXRlQXBwSGlnaGxpZ2h0UmFuZ2VEYXRhKGNvbnN0IFN0YXRpY1Jh
bmdlJiByYW5nCiB9CiAKIEFwcEhpZ2hsaWdodFN0b3JhZ2U6OkFwcEhpZ2hsaWdodFN0b3JhZ2Uo
RG9jdW1lbnQmIGRvY3VtZW50KQotICAgIDogbV9kb2N1bWVudChtYWtlV2Vha1B0cihkb2N1bWVu
dCkpCisgICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5oCmluZGV4IDRmNmQzZTFmMzM0MTA3OTIxZGI1
NTQyMGVkZTdmZTJhN2UwMGFhOTYuLjNkZWY1Zjg4ZjJkYjQ1NGNmOWRjOGIxYjVmMWFlYzQxZTY3
NDFhOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1
cnNvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5o
CkBAIC03NCw3ICs3NCw3IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IElEQkN1cnNvckluZm8mIGlu
Zm8oKSBjb25zdCB7IHJldHVybiBtX2luZm87IH0KIAotICAgIHZvaWQgc2V0UmVxdWVzdChJREJS
ZXF1ZXN0JiByZXF1ZXN0KSB7IG1fcmVxdWVzdCA9IG1ha2VXZWFrUHRyKCZyZXF1ZXN0KTsgfQor
ICAgIHZvaWQgc2V0UmVxdWVzdChJREJSZXF1ZXN0JiByZXF1ZXN0KSB7IG1fcmVxdWVzdCA9IHJl
cXVlc3Q7IH0KICAgICB2b2lkIGNsZWFyUmVxdWVzdCgpIHsgbV9yZXF1ZXN0LmNsZWFyKCk7IH0K
ICAgICB2b2lkIGNsZWFyV3JhcHBlcnMoKTsKICAgICBJREJSZXF1ZXN0KiByZXF1ZXN0KCkgeyBy
ZXR1cm4gbV9yZXF1ZXN0LmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3Bw
CmluZGV4IDcyNDRkMWZiNzc2YzQ2MGRhZTNlODMwYjUyN2I0NTJjY2M1NTE3M2YuLmEwZjAyMGVm
NGNiNWNmMjM0YzNkMDRjNzVlZDVkODkzZmEzZWEwNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9u
VG9TZXJ2ZXIuY3BwCkBAIC01MSw3ICs1MSw3IEBAIFJlZjxJREJDb25uZWN0aW9uVG9TZXJ2ZXI+
IElEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Y3JlYXRlKElEQkNvbm5lY3Rpb25Ub1NlcnZlckRlCiB9
CiAKIElEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6SURCQ29ubmVjdGlvblRvU2VydmVyKElEQkNvbm5l
Y3Rpb25Ub1NlcnZlckRlbGVnYXRlJiBkZWxlZ2F0ZSkKLSAgICA6IG1fZGVsZWdhdGUobWFrZVdl
YWtQdHIoZGVsZWdhdGUpKQorICAgIDogbV9kZWxlZ2F0ZShkZWxlZ2F0ZSkKICAgICAsIG1fcHJv
eHkobWFrZVVuaXF1ZTxJREJDb25uZWN0aW9uUHJveHk+KCp0aGlzKSkKIHsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRh
YmFzZUNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL1VuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbi5jcHAKaW5kZXggMGM1MzljYTg1NDYzYTBj
NDg0MjNlNWVlMzQ1MGVkNGNiMDcwOTY1OC4uNzQzZWRjYzNiOGM1OTQwNTFmNzkxMTE2NTI2YWY0
ZDAyMTY5MTM2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbi5j
cHAKQEAgLTQxLDcgKzQxLDcgQEAgUmVmPFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbj4gVW5p
cXVlSURCRGF0YWJhc2VDb25uZWN0aW9uOjpjcmVhdGUoVW5pcXVlSURCRGEKIH0KIAogVW5pcXVl
SURCRGF0YWJhc2VDb25uZWN0aW9uOjpVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24oVW5pcXVl
SURCRGF0YWJhc2UmIGRhdGFiYXNlLCBTZXJ2ZXJPcGVuREJSZXF1ZXN0JiByZXF1ZXN0KQotICAg
IDogbV9kYXRhYmFzZShtYWtlV2Vha1B0cihkYXRhYmFzZSkpCisgICAgOiBtX2RhdGFiYXNlKGRh
dGFiYXNlKQogICAgICwgbV9zZXJ2ZXIoZGF0YWJhc2Uuc2VydmVyKCkpCiAgICAgLCBtX2Nvbm5l
Y3Rpb25Ub0NsaWVudChyZXF1ZXN0LmNvbm5lY3Rpb24oKSkKICAgICAsIG1fb3BlblJlcXVlc3RJ
ZGVudGlmaWVyKHJlcXVlc3QucmVxdWVzdERhdGEoKS5yZXF1ZXN0SWRlbnRpZmllcigpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlE
QkRhdGFiYXNlVHJhbnNhY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24uY3BwCmluZGV4IDIwYmYxYTE5
YWRiNjJkNTc2NTI2NjYyYjg4YmZkMWJmMzNiYWJhMmIuLjFjYzAyODE3YTEyNGM4ZDBlZDUyZjIx
M2FjOGU1MDA2YmE2Yjk2ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VUcmFu
c2FjdGlvbi5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgUmVmPFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNh
Y3Rpb24+IFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb246OmNyZWF0ZShVbmlxdWVJREIKIH0K
IAogVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbjo6VW5pcXVlSURCRGF0YWJhc2VUcmFuc2Fj
dGlvbihVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIGNvbnN0IElEQlRy
YW5zYWN0aW9uSW5mbyYgaW5mbykKLSAgICA6IG1fZGF0YWJhc2VDb25uZWN0aW9uKG1ha2VXZWFr
UHRyKCZjb25uZWN0aW9uKSkKKyAgICA6IG1fZGF0YWJhc2VDb25uZWN0aW9uKGNvbm5lY3Rpb24p
CiAgICAgLCBtX3RyYW5zYWN0aW9uSW5mbyhpbmZvKQogewogICAgIGF1dG8gZGF0YWJhc2UgPSBk
YXRhYmFzZUNvbm5lY3Rpb24oKS5kYXRhYmFzZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAKaW5kZXgg
N2E1ZTQ4NDZjNDAwMjIwMDdjZjg0NDQ3NDdmZWZiZWJmYTllMjRmZS4uZTg5ODAzMDNkZmNjM2Vm
MWFlYjE5YjAwMzk3OTRiM2QzNmEwZDIyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwCkBAIC0xMDMs
NyArMTAzLDcgQEAgUmVmPE1lZGlhQ29udHJvbHNIb3N0PiBNZWRpYUNvbnRyb2xzSG9zdDo6Y3Jl
YXRlKEhUTUxNZWRpYUVsZW1lbnQmIG1lZGlhRWxlbWVudCkKIH0KIAogTWVkaWFDb250cm9sc0hv
c3Q6Ok1lZGlhQ29udHJvbHNIb3N0KEhUTUxNZWRpYUVsZW1lbnQmIG1lZGlhRWxlbWVudCkKLSAg
ICA6IG1fbWVkaWFFbGVtZW50KG1ha2VXZWFrUHRyKG1lZGlhRWxlbWVudCkpCisgICAgOiBtX21l
ZGlhRWxlbWVudChtZWRpYUVsZW1lbnQpCiB7CiB9CiAKQEAgLTY1Miw3ICs2NTIsNyBAQCBib29s
IE1lZGlhQ29udHJvbHNIb3N0OjpzaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51KEhUTUxFbGVt
ZW50JiB0YXJnZXQsIFN0cmluZwogCiAgICAgbV9zaG93TWVkaWFDb250cm9sc0NvbnRleHRNZW51
Q2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsKIAotICAgIGF1dG8gaGFuZGxlSXRlbVNlbGVj
dGVkID0gW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIGlkTWFwID0gV1RGTW92ZShpZE1h
cCldIChNZW51SXRlbUlkZW50aWZpZXIgc2VsZWN0ZWRJdGVtSUQpIHsKKyAgICBhdXRvIGhhbmRs
ZUl0ZW1TZWxlY3RlZCA9IFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBpZE1hcCA9IFdU
Rk1vdmUoaWRNYXApXSAoTWVudUl0ZW1JZGVudGlmaWVyIHNlbGVjdGVkSXRlbUlEKSB7CiAgICAg
ICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIFJlZiBzdHJv
bmdUaGlzID0gKndlYWtUaGlzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFNZXRhZGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRhLmNwcAppbmRleCA2ZjljMmY0OTI0MmYyZGE3MTQ2YTVl
ZmY3MDBiZGY3MTZkZWY3M2I4Li4zZjRjOWJjZDEzM2FjMjlmM2Y3ZGRlMTk5NDc4ZTM5MjU3ZDVl
NjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRp
YU1ldGFkYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lvbi9N
ZWRpYU1ldGFkYXRhLmNwcApAQCAtMTExLDcgKzExMSw3IEBAIE1lZGlhTWV0YWRhdGE6On5NZWRp
YU1ldGFkYXRhKCkgPSBkZWZhdWx0OwogCiB2b2lkIE1lZGlhTWV0YWRhdGE6OnNldE1lZGlhU2Vz
c2lvbihNZWRpYVNlc3Npb24mIHNlc3Npb24pCiB7Ci0gICAgbV9zZXNzaW9uID0gbWFrZVdlYWtQ
dHIoc2Vzc2lvbik7CisgICAgbV9zZXNzaW9uID0gc2Vzc2lvbjsKICAgICByZWZyZXNoQXJ0d29y
a0ltYWdlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
ZXNzaW9uL01lZGlhU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vz
c2lvbi9NZWRpYVNlc3Npb24uY3BwCmluZGV4IGM3ZDc0OGNkM2VkYmIyZGE0MzgxZTU2ZjFiMjUy
NjIwMzg4ZmQ2NGMuLmZhZThlMzMwYzViYWRiZjYxMTg4MjQ4YjVhOGQ0YmRiOWQ1NDhkYzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzZXNzaW9uL01lZGlhU2Vzc2lv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNz
aW9uLmNwcApAQCAtMTQ0LDcgKzE0NCw3IEBAIFJlZjxNZWRpYVNlc3Npb24+IE1lZGlhU2Vzc2lv
bjo6Y3JlYXRlKE5hdmlnYXRvciYgbmF2aWdhdG9yKQogCiBNZWRpYVNlc3Npb246Ok1lZGlhU2Vz
c2lvbihOYXZpZ2F0b3ImIG5hdmlnYXRvcikKICAgICA6IEFjdGl2ZURPTU9iamVjdChuYXZpZ2F0
b3Iuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICwgbV9uYXZpZ2F0b3IobWFrZVdlYWtQ
dHIobmF2aWdhdG9yKSkKKyAgICAsIG1fbmF2aWdhdG9yKG5hdmlnYXRvcikKICNpZiBFTkFCTEUo
TUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKICAgICAsIG1fY29vcmRpbmF0b3IoTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3I6OmNyZWF0ZShuYXZpZ2F0b3Iuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
KSkKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Np
b24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCmluZGV4IDM0ZjI1NTg4ZDhi
YTc4MmNjMzQ5NDM0YmJiN2RjYmJmZTMyMTAwYmYuLmFiNTljNjkyYTQ1Njg1NDAxNzJjYTcwYzlm
ZWE0MmQ1YTAwYmEyZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
ZXNzaW9uL01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYVNlc3Npb25Db29yZGluYXRvci5jcHAKQEAgLTcwLDcg
KzcwLDcgQEAgdm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0TWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3JQcml2YXRlKFJlZjxNZWRpYVNlc3Npb24KICAgICAgICAgbV9wcml2YXRlQ29vcmRp
bmF0b3ItPmxlYXZlKCk7CiAgICAgbV9wcml2YXRlQ29vcmRpbmF0b3IgPSBXVEZNb3ZlKHByaXZh
dGVDb29yZGluYXRvcik7CiAgICAgbV9wcml2YXRlQ29vcmRpbmF0b3ItPnNldExvZ2dlcihtX2xv
Z2dlci5jb3B5UmVmKCksIG1fbG9nSWRlbnRpZmllcik7Ci0gICAgbV9wcml2YXRlQ29vcmRpbmF0
b3ItPnNldENsaWVudChtYWtlV2Vha1B0cih0aGlzKSk7CisgICAgbV9wcml2YXRlQ29vcmRpbmF0
b3ItPnNldENsaWVudCgqdGhpcyk7CiAgICAgY29vcmRpbmF0b3JTdGF0ZUNoYW5nZWQoTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3JTdGF0ZTo6V2FpdGluZyk7CiB9CiAKQEAgLTI3NCw3ICsyNzQsNyBA
QCB2b2lkIE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjpzZXRUcmFjayhjb25zdCBTdHJpbmcmIHRy
YWNrLCBET01Qcm9taXNlRGVmZXJyZWQ8dgogdm9pZCBNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6
c2V0TWVkaWFTZXNzaW9uKE1lZGlhU2Vzc2lvbiogc2Vzc2lvbikKIHsKICAgICBBTFdBWVNfTE9H
KExPR0lERU5USUZJRVIpOwotICAgIG1fc2Vzc2lvbiA9IG1ha2VXZWFrUHRyKHNlc3Npb24pOwor
ICAgIG1fc2Vzc2lvbiA9IHNlc3Npb247CiAKICAgICBpZiAobV9zZXNzaW9uKQogICAgICAgICBt
X3Nlc3Npb24tPmFkZE9ic2VydmVyKCp0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKaW5kZXggNzE3MjljY2JlOTQxNjczMmRj
MTk1OGMyYzA5OWMxZTE2NmJjMWNjNS4uNTk1ZTQyNTQyN2U4ZWJhYzlmNWFiNmFmMTBhNTczYzA1
NDViYjRhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9N
ZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9N
ZWRpYVNvdXJjZS5jcHAKQEAgLTk3OSw3ICs5NzksNyBAQCBib29sIE1lZGlhU291cmNlOjphdHRh
Y2hUb0VsZW1lbnQoSFRNTE1lZGlhRWxlbWVudCYgZWxlbWVudCkKIAogICAgIEFTU0VSVChpc0Ns
b3NlZCgpKTsKIAotICAgIG1fbWVkaWFFbGVtZW50ID0gbWFrZVdlYWtQdHIoJmVsZW1lbnQpOwor
ICAgIG1fbWVkaWFFbGVtZW50ID0gZWxlbWVudDsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3Bw
CmluZGV4IDZjZDQyYzY0MDYyNDNjNzYyY2U3OGFjNTJiMDRlYmViZjUwYzZiMGQuLjg3YThmOTgz
MWRhMjkxYTU4ZGVhMzBjNDQ2NGM2ZGE2ZDc0Y2UyNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAKQEAgLTEwNyw3ICsxMDcs
NyBAQCBib29sIE1lZGlhRGV2aWNlczo6Y29tcHV0ZVVzZXJHZXN0dXJlUHJpdmlsZWRnZShHZXN0
dXJlQWxsb3dlZFJlcXVlc3QgcmVxdWVzdFR5cAogewogICAgIGF1dG8qIGN1cnJlbnRHZXN0dXJl
VG9rZW4gPSBVc2VyR2VzdHVyZUluZGljYXRvcjo6Y3VycmVudFVzZXJHZXN0dXJlKCkuZ2V0KCk7
CiAgICAgaWYgKG1fY3VycmVudEdlc3R1cmVUb2tlbi5nZXQoKSAhPSBjdXJyZW50R2VzdHVyZVRv
a2VuKSB7Ci0gICAgICAgIG1fY3VycmVudEdlc3R1cmVUb2tlbiA9IG1ha2VXZWFrUHRyKGN1cnJl
bnRHZXN0dXJlVG9rZW4pOworICAgICAgICBtX2N1cnJlbnRHZXN0dXJlVG9rZW4gPSBjdXJyZW50
R2VzdHVyZVRva2VuOwogICAgICAgICBtX3JlcXVlc3RUeXBlc0ZvckN1cnJlbnRHZXN0dXJlID0g
eyB9OwogICAgIH0KIApAQCAtMjQyLDcgKzI0Miw3IEBAIHZvaWQgTWVkaWFEZXZpY2VzOjplbnVt
ZXJhdGVEZXZpY2VzKEVudW1lcmF0ZURldmljZXNQcm9taXNlJiYgcHJvbWlzZSkKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIGNvbnRyb2xsZXItPmVudW1lcmF0ZU1lZGlhRGV2aWNlcygq
ZG9jdW1lbnQsIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBwcm9taXNlID0g
V1RGTW92ZShwcm9taXNlKV0oY29uc3QgYXV0byYgbmV3RGV2aWNlcywgY29uc3QgYXV0byYgZGV2
aWNlSURIYXNoU2FsdCkgbXV0YWJsZSB7CisgICAgY29udHJvbGxlci0+ZW51bWVyYXRlTWVkaWFE
ZXZpY2VzKCpkb2N1bWVudCwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHBy
b21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShjb25zdCBhdXRvJiBuZXdEZXZpY2VzLCBjb25zdCBh
dXRvJiBkZXZpY2VJREhhc2hTYWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgZXhwb3NlRGV2aWNlcyhuZXdEZXZpY2VzLCBk
ZXZpY2VJREhhc2hTYWx0LCBXVEZNb3ZlKHByb21pc2UpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNw
cAppbmRleCBlZjFmNDI0M2M1ZTllNzdhOGFlMzYxMzI0ODZiNDliZDRkMTQwOTRlLi4xNzNlZTU1
YTgzNjY4ODhmNjc2M2UyODQwODNlYzQ3ZDY5ZWMxYjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQu
Y3BwCkBAIC0zMTEsNyArMzExLDcgQEAgdm9pZCBQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmFkZElj
ZUNhbmRpZGF0ZShSVENJY2VDYW5kaWRhdGUqIGljZUNhbmRpZGF0ZSwgRnVuY3QKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIGRvQWRkSWNlQ2FuZGlkYXRlKCppY2VDYW5kaWRhdGUsIFt3
ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2sp
XShhdXRvJiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICBkb0FkZEljZUNhbmRpZGF0ZSgqaWNlQ2Fu
ZGlkYXRlLCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgY2FsbGJhY2sgPSBXVEZNb3Zl
KGNhbGxiYWNrKV0oYXV0byYmIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghd2Vha1Ro
aXMpCiAgICAgICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDRFRNRlNlbmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ0RUTUZTZW5kZXIuY3BwCmluZGV4IDVjMTE2ZmU1ZWVmMjljYWEx
NjZmNzZiZjYyYjIzOGZjZWE0MDcwZmQuLjQyZTUyYjk5NDQ3MzdlYTIxYjI0NTJkMDA3ZWMwYTcw
ZDFiMDExYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDRFRNRlNlbmRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENEVE1GU2VuZGVyLmNwcApAQCAtNDUsNyArNDUsNyBAQCBzdGF0aWMgY29uc3Qgc2l6ZV90
IG1pbkludGVyVG9uZUdhcE1zID0gMzA7CiBSVENEVE1GU2VuZGVyOjpSVENEVE1GU2VuZGVyKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFJUQ1J0cFNlbmRlciYgc2VuZGVyLCBzdGQ6
OnVuaXF1ZV9wdHI8UlRDRFRNRlNlbmRlckJhY2tlbmQ+JiYgYmFja2VuZCkKICAgICA6IEFjdGl2
ZURPTU9iamVjdCgmY29udGV4dCkKICAgICAsIG1fdG9uZVRpbWVyKCp0aGlzLCAmUlRDRFRNRlNl
bmRlcjo6dG9uZVRpbWVyRmlyZWQpCi0gICAgLCBtX3NlbmRlcihtYWtlV2Vha1B0cihzZW5kZXIp
KQorICAgICwgbV9zZW5kZXIoc2VuZGVyKQogICAgICwgbV9iYWNrZW5kKFdURk1vdmUoYmFja2Vu
ZCkpCiB7CiAgICAgbV9iYWNrZW5kLT5vblRvbmVQbGF5ZWQoW3RoaXNdKGNvbnN0IFN0cmluZyYp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNl
VHJhbnNwb3J0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNl
VHJhbnNwb3J0LmNwcAppbmRleCBkZjhjNDFlODU0MTRiOTQzYmZlYjI3NjNiMTg2ZTk0NzNlMjkx
OGVhLi44ZGRhZWJiZDFjODZhMDZkOTBmNmQ1NWJlNTAxYmIzOTEzZTU0NDQ2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0ljZVRyYW5zcG9ydC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VUcmFuc3BvcnQu
Y3BwCkBAIC00MCw3ICs0MCw3IEBAIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChSVENJY2VU
cmFuc3BvcnQpOwogUlRDSWNlVHJhbnNwb3J0OjpSVENJY2VUcmFuc3BvcnQoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCwgVW5pcXVlUmVmPFJUQ0ljZVRyYW5zcG9ydEJhY2tlbmQ+JiYg
YmFja2VuZCwgUlRDUGVlckNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCiAgICAgOiBBY3RpdmVET01P
YmplY3QoJmNvbnRleHQpCiAgICAgLCBtX2JhY2tlbmQoV1RGTW92ZShiYWNrZW5kKSkKLSAgICAs
IG1fY29ubmVjdGlvbihtYWtlV2Vha1B0cihjb25uZWN0aW9uKSkKKyAgICAsIG1fY29ubmVjdGlv
bihjb25uZWN0aW9uKQogewogICAgIHN1c3BlbmRJZk5lZWRlZCgpOwogICAgIG1fYmFja2VuZC0+
cmVnaXN0ZXJDbGllbnQoKnRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENSdHBSZWNlaXZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1J0cFJlY2VpdmVyLmNwcAppbmRleCBkNWM1NGMwYzQ5OWZiYTNhMThh
M2IzNTI2NmVjOTlkOGZiYjgyN2FjLi43ZWVkNTdjOTdmNGUyMWEzNTRlY2ZjMGZiNDYxZmFkNDlj
YmRiYTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1J0cFJlY2VpdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1J0cFJlY2VpdmVyLmNwcApAQCAtNTIsNyArNTIsNyBAQCBXVEZfTUFLRV9JU09fQUxMT0NB
VEVEX0lNUEwoUlRDUnRwUmVjZWl2ZXIpOwogUlRDUnRwUmVjZWl2ZXI6OlJUQ1J0cFJlY2VpdmVy
KFBlZXJDb25uZWN0aW9uQmFja2VuZCYgY29ubmVjdGlvbiwgUmVmPE1lZGlhU3RyZWFtVHJhY2s+
JiYgdHJhY2ssIHN0ZDo6dW5pcXVlX3B0cjxSVENSdHBSZWNlaXZlckJhY2tlbmQ+JiYgYmFja2Vu
ZCkKICAgICA6IG1fdHJhY2soV1RGTW92ZSh0cmFjaykpCiAgICAgLCBtX2JhY2tlbmQoV1RGTW92
ZShiYWNrZW5kKSkKLSAgICAsIG1fY29ubmVjdGlvbihtYWtlV2Vha1B0cigmY29ubmVjdGlvbikp
CisgICAgLCBtX2Nvbm5lY3Rpb24oY29ubmVjdGlvbikKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJM
RUQKICAgICAsIG1fbG9nZ2VyKGNvbm5lY3Rpb24ubG9nZ2VyKCkpCiAgICAgLCBtX2xvZ0lkZW50
aWZpZXIoY29ubmVjdGlvbi5sb2dJZGVudGlmaWVyKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybS5jcHAK
aW5kZXggZGQ1YTAyY2JlYTE2NTkwOWFmMjI3YTgzZWNjMmI5ZjdkMDdmNzA3Mi4uYTYxZjE4MmY3
OThlOTI5MmFiNmFiNmY3MzY4NDUwMjYzMGRjMjBhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm0uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmNw
cApAQCAtMTU5LDcgKzE1OSw3IEBAIHZvaWQgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtOjppbml0aWFs
aXplVHJhbnNmb3JtZXIoUlRDUnRwVHJhbnNmb3JtQmFja2VuZCYgYmFja2VuCiAgICAgbV90cmFu
c2Zvcm1lci0+c2V0SXNFbmNyeXB0aW5nKHNpZGUgPT0gU2lkZTo6U2VuZGVyKTsKICAgICBtX3Ry
YW5zZm9ybWVyLT5zZXRNZWRpYVR5cGUoYmFja2VuZC5tZWRpYVR5cGUoKSk7CiAKLSAgICBiYWNr
ZW5kLnNldFRyYW5zZm9ybWFibGVGcmFtZUNhbGxiYWNrKFt0cmFuc2Zvcm1lciA9IG1fdHJhbnNm
b3JtZXIsIGlkZW50aWZpZXIgPSBjb250ZXh0LT5jb250ZXh0SWRlbnRpZmllcigpLCBiYWNrZW5k
ID0gUmVmIHsgYmFja2VuZCB9LCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXShhdXRvJiYg
ZnJhbWUpIHsKKyAgICBiYWNrZW5kLnNldFRyYW5zZm9ybWFibGVGcmFtZUNhbGxiYWNrKFt0cmFu
c2Zvcm1lciA9IG1fdHJhbnNmb3JtZXIsIGlkZW50aWZpZXIgPSBjb250ZXh0LT5jb250ZXh0SWRl
bnRpZmllcigpLCBiYWNrZW5kID0gUmVmIHsgYmFja2VuZCB9LCB3ZWFrVGhpcyA9IFdlYWtQdHIg
eyAqdGhpcyB9XShhdXRvJiYgZnJhbWUpIHsKICAgICAgICAgYXV0byBjaHVuayA9IGZyYW1lLT5k
YXRhKCk7CiAgICAgICAgIGlmICghY2h1bmsuZGF0YSgpIHx8ICFjaHVuay5zaXplKCkpCiAgICAg
ICAgICAgICByZXR1cm47CkBAIC0yMTksNyArMjE5LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gUlRD
UnRwU0ZyYW1lVHJhbnNmb3JtOjpjcmVhdGVTdHJlYW1zKCkKICAgICBpZiAocmVhZGFibGUuaGFz
RXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiByZWFkYWJsZS5yZWxlYXNlRXhjZXB0aW9uKCk7
CiAKLSAgICBhdXRvIHdyaXRhYmxlID0gV3JpdGFibGVTdHJlYW06OmNyZWF0ZSgqSlNDOjpqc0Nh
c3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpLCBTaW1wbGVXcml0YWJsZVN0cmVh
bVNpbms6OmNyZWF0ZShbdHJhbnNmb3JtZXIgPSBtX3RyYW5zZm9ybWVyLCByZWFkYWJsZVN0cmVh
bVNvdXJjZSA9IG1fcmVhZGFibGVTdHJlYW1Tb3VyY2UsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIo
dGhpcyldKGF1dG8mIGNvbnRleHQsIGF1dG8gdmFsdWUpIC0+IEV4Y2VwdGlvbk9yPHZvaWQ+IHsK
KyAgICBhdXRvIHdyaXRhYmxlID0gV3JpdGFibGVTdHJlYW06OmNyZWF0ZSgqSlNDOjpqc0Nhc3Q8
SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpLCBTaW1wbGVXcml0YWJsZVN0cmVhbVNp
bms6OmNyZWF0ZShbdHJhbnNmb3JtZXIgPSBtX3RyYW5zZm9ybWVyLCByZWFkYWJsZVN0cmVhbVNv
dXJjZSA9IG1fcmVhZGFibGVTdHJlYW1Tb3VyY2UsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlz
IH1dKGF1dG8mIGNvbnRleHQsIGF1dG8gdmFsdWUpIC0+IEV4Y2VwdGlvbk9yPHZvaWQ+IHsKICAg
ICAgICAgaWYgKCFjb250ZXh0Lmdsb2JhbE9iamVjdCgpKQogICAgICAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CiAgICAgICAgIGF1dG8mIGdsb2JhbE9iamVj
dCA9ICpKU0M6OmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGNvbnRleHQuZ2xvYmFsT2JqZWN0
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENS
dHBTY3JpcHRUcmFuc2Zvcm0uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENSdHBTY3JpcHRUcmFuc2Zvcm0uY3BwCmluZGV4IGVjZGEyM2M4NzVmNzA3MjE1MTdlZGJl
YTYxOTkzNDQ2MjA5NzJhYmEuLjY4ZTYzYWZmODI0Mzc3NDIzNDU1YzNiYzVjNDRkYzBkOTk2ZjQw
YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRw
U2NyaXB0VHJhbnNmb3JtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybS5jcHAKQEAgLTg2LDcgKzg2LDcgQEAgdm9pZCBSVENS
dHBTY3JpcHRUcmFuc2Zvcm06OnNldFRyYW5zZm9ybWVyKFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVy
JiB0cmFuc2Zvcm1lcikKICAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fdHJhbnNmb3JtZXJMb2Nr
IH07CiAgICAgICAgIEFTU0VSVCghbV9pc1RyYW5zZm9ybWVySW5pdGlhbGl6ZWQpOwogICAgICAg
ICBtX2lzVHJhbnNmb3JtZXJJbml0aWFsaXplZCA9IHRydWU7Ci0gICAgICAgIG1fdHJhbnNmb3Jt
ZXIgPSBtYWtlV2Vha1B0cih0cmFuc2Zvcm1lcik7CisgICAgICAgIG1fdHJhbnNmb3JtZXIgPSB0
cmFuc2Zvcm1lcjsKICAgICB9CiAgICAgdHJhbnNmb3JtZXIuc3RhcnRQZW5kaW5nQWN0aXZpdHko
KTsKICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRo
aXMgfV0oKSBtdXRhYmxlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5jcHAKaW5kZXggZjg0ZDdk
NzNhZGI1MzBlYzU5ODIwOGFmOWYxODYyNTFkYjVmMDhlYS4uNDY1ZTcwYzdiMzNlNmY3Y2ExYzdl
ZDg3NTMyMTM5OGM3ODk1NDM1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5jcHAKQEAgLTEy
Miw3ICsxMjIsNyBAQCB2b2lkIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyOjpzdGFydChSZWY8UlRD
UnRwVHJhbnNmb3JtQmFja2VuZD4mJiBiYWNrZW5kKQogICAgIG1fYmFja2VuZCA9IFdURk1vdmUo
YmFja2VuZCk7CiAKICAgICBhdXRvJiBjb250ZXh0ID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2Nv
cGU+KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotICAgIG1fYmFja2VuZC0+c2V0VHJhbnNm
b3JtYWJsZUZyYW1lQ2FsbGJhY2soW3JlYWRhYmxlU291cmNlID0gbWFrZVdlYWtQdHIobV9yZWFk
YWJsZVNvdXJjZS5nZXQoKSksIGlzQXVkaW8gPSBtX2JhY2tlbmQtPm1lZGlhVHlwZSgpID09IFJU
Q1J0cFRyYW5zZm9ybUJhY2tlbmQ6Ok1lZGlhVHlwZTo6QXVkaW8sIHRocmVhZCA9IFJlZiB7IGNv
bnRleHQudGhyZWFkKCkgfV0oYXV0byYmIGZyYW1lKSBtdXRhYmxlIHsKKyAgICBtX2JhY2tlbmQt
PnNldFRyYW5zZm9ybWFibGVGcmFtZUNhbGxiYWNrKFtyZWFkYWJsZVNvdXJjZSA9IFdlYWtQdHIg
eyBtX3JlYWRhYmxlU291cmNlIH0sIGlzQXVkaW8gPSBtX2JhY2tlbmQtPm1lZGlhVHlwZSgpID09
IFJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQ6Ok1lZGlhVHlwZTo6QXVkaW8sIHRocmVhZCA9IFJlZiB7
IGNvbnRleHQudGhyZWFkKCkgfV0oYXV0byYmIGZyYW1lKSBtdXRhYmxlIHsKICAgICAgICAgdGhy
ZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFtyZWFkYWJsZVNvdXJjZSwgaXNBdWRpbywg
ZnJhbWUgPSBXVEZNb3ZlKGZyYW1lKV0oYXV0byYgY29udGV4dCkgbXV0YWJsZSB7CiAgICAgICAg
ICAgICBpZiAoIXJlYWRhYmxlU291cmNlKQogICAgICAgICAgICAgICAgIHJldHVybjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2VuZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2VuZGVyLmNwcApp
bmRleCBmODlhOGJlMGRmMTE1OGRhMzUyMzM5NzM2YzBkOGNhN2E0OGQ2NjcwLi5iMDA5YzljZjNk
ZWYyNGMyYTkyYzViZTQ4MTdjNzAyY2E3M2EzNzIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNlbmRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTZW5kZXIuY3BwCkBAIC02Nyw3ICs2Nyw3IEBA
IFJlZjxSVENSdHBTZW5kZXI+IFJUQ1J0cFNlbmRlcjo6Y3JlYXRlKFJUQ1BlZXJDb25uZWN0aW9u
JiBjb25uZWN0aW9uLCBTdHJpbmcmJiB0CiBSVENSdHBTZW5kZXI6OlJUQ1J0cFNlbmRlcihSVENQ
ZWVyQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgU3RyaW5nJiYgdHJhY2tLaW5kLCBzdGQ6OnVuaXF1
ZV9wdHI8UlRDUnRwU2VuZGVyQmFja2VuZD4mJiBiYWNrZW5kKQogICAgIDogbV90cmFja0tpbmQo
V1RGTW92ZSh0cmFja0tpbmQpKQogICAgICwgbV9iYWNrZW5kKFdURk1vdmUoYmFja2VuZCkpCi0g
ICAgLCBtX2Nvbm5lY3Rpb24obWFrZVdlYWtQdHIoY29ubmVjdGlvbikpCisgICAgLCBtX2Nvbm5l
Y3Rpb24oY29ubmVjdGlvbikKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICAsIG1fbG9n
Z2VyKGNvbm5lY3Rpb24ubG9nZ2VyKCkpCiAgICAgLCBtX2xvZ0lkZW50aWZpZXIoY29ubmVjdGlv
bi5sb2dJZGVudGlmaWVyKCkpCkBAIC0xMTksNyArMTE5LDcgQEAgdm9pZCBSVENSdHBTZW5kZXI6
OnJlcGxhY2VUcmFjayhSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4mJiB3aXRoVHJhY2ssIFJlZjxE
ZWZlcnIKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fY29ubmVjdGlvbi0+Y2hhaW5P
cGVyYXRpb24oV1RGTW92ZShwcm9taXNlKSwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIo
dGhpcyksIHdpdGhUcmFjayA9IFdURk1vdmUod2l0aFRyYWNrKV0oYXV0byYmIHByb21pc2UpIG11
dGFibGUgeworICAgIG1fY29ubmVjdGlvbi0+Y2hhaW5PcGVyYXRpb24oV1RGTW92ZShwcm9taXNl
KSwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHdpdGhUcmFjayA9IFdURk1v
dmUod2l0aFRyYWNrKV0oYXV0byYmIHByb21pc2UpIG11dGFibGUgewogICAgICAgICBpZiAoIXdl
YWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBpZiAoaXNTdG9wcGVkKCkpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwVHJh
bnNjZWl2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBU
cmFuc2NlaXZlci5jcHAKaW5kZXggNzI3YmVjNGFmMmUxN2NhMDg0YjA0Y2QyMmMzNjgxMmZlNGRh
YzBlMC4uM2U4NzU3NDNkZDMyZDVhOGJmYWQ1MzFiMjJlMWEyYTk1M2U3MjhhZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBUcmFuc2NlaXZlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBUcmFuc2Nl
aXZlci5jcHAKQEAgLTEwMSw3ICsxMDEsNyBAQCB2b2lkIFJUQ1J0cFRyYW5zY2VpdmVyOjpkaXNh
YmxlU2VuZGluZ0RpcmVjdGlvbigpCiB2b2lkIFJUQ1J0cFRyYW5zY2VpdmVyOjpzZXRDb25uZWN0
aW9uKFJUQ1BlZXJDb25uZWN0aW9uJiBjb25uZWN0aW9uKQogewogICAgIEFTU0VSVCghbV9jb25u
ZWN0aW9uKTsKLSAgICBtX2Nvbm5lY3Rpb24gPSBtYWtlV2Vha1B0cihjb25uZWN0aW9uKTsKKyAg
ICBtX2Nvbm5lY3Rpb24gPSBjb25uZWN0aW9uOwogfQogCiBFeGNlcHRpb25Pcjx2b2lkPiBSVENS
dHBUcmFuc2NlaXZlcjo6c3RvcCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDRGF0
YUNoYW5uZWxIYW5kbGVyLmNwcAppbmRleCA1Mjc0MDYzNDMxNmY5ZDhiZDgzYzZjNDY3ZGM2ZGI1
Yjc1MmE1NzUzLi4zZTExMDU0MDAzNTNkZTU2MGYyNDkzOGE5YjIwOGVmMzZmNjgwM2M0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENEYXRhQ2hhbm5lbEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ0RhdGFDaGFubmVsSGFuZGxlci5jcHAKQEAg
LTkzLDcgKzkzLDcgQEAgdm9pZCBMaWJXZWJSVENEYXRhQ2hhbm5lbEhhbmRsZXI6OnNldENsaWVu
dChSVENEYXRhQ2hhbm5lbEhhbmRsZXJDbGllbnQmIGNsaWVudCwKICAgICBBU1NFUlQoIW1fY2xp
ZW50KTsKICAgICBBU1NFUlQoIW1faGFzQ2xpZW50KTsKICAgICBtX2hhc0NsaWVudCA9IHRydWU7
Ci0gICAgbV9jbGllbnQgPSBtYWtlV2Vha1B0cihjbGllbnQpOworICAgIG1fY2xpZW50ID0gY2xp
ZW50OwogICAgIG1fY29udGV4dElkZW50aWZpZXIgPSBjb250ZXh0SWRlbnRpZmllcjsKIAogICAg
IGZvciAoYXV0byYgbWVzc2FnZSA6IG1fYnVmZmVyZWRNZXNzYWdlcykgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDRHRs
c1RyYW5zcG9ydEJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9saWJ3ZWJydGMvTGliV2ViUlRDRHRsc1RyYW5zcG9ydEJhY2tlbmQuY3BwCmluZGV4IDdlNzJi
ZDU1MTJmMDhiYWFkMWUyY2M5YWIxYzY0ODhhMDNmN2NmYmQuLmNkMjI0ZDFmMjI3MWE3ZTNjMGZh
OTBlYjcyNDZmYjY0NDJhOGU1NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ0R0bHNUcmFuc3BvcnRCYWNrZW5kLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENEdGxzVHJhbnNwb3J0QmFja2VuZC5jcHAKQEAgLTc2LDcgKzc2LDcgQEAgcHJpdmF0ZToKIAog
TGliV2ViUlRDRHRsc1RyYW5zcG9ydEJhY2tlbmRPYnNlcnZlcjo6TGliV2ViUlRDRHRsc1RyYW5z
cG9ydEJhY2tlbmRPYnNlcnZlcihSVENEdGxzVHJhbnNwb3J0QmFja2VuZDo6Q2xpZW50JiBjbGll
bnQsIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OkR0bHNUcmFuc3BvcnRJbnRlcmZhY2U+JiBi
YWNrZW5kKQogICAgIDogbV9iYWNrZW5kKGJhY2tlbmQpCi0gICAgLCBtX2NsaWVudChtYWtlV2Vh
a1B0cihjbGllbnQpKQorICAgICwgbV9jbGllbnQoY2xpZW50KQogewogICAgIEFTU0VSVChtX2Jh
Y2tlbmQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9saWJ3ZWJydGMvTGliV2ViUlRDSWNlVHJhbnNwb3J0QmFja2VuZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENJY2VUcmFuc3BvcnRC
YWNrZW5kLmNwcAppbmRleCBjYzI2NzZiY2EwNmJjODhjNTAxMDViYzVlZTM5MTQ3ZjRjMGRmN2M3
Li5kNjE0MDkyNTEwMmEzZGY0OTE1MjVmZmU0MjQyZmRjZjM2YjkyOTA1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENJY2VU
cmFuc3BvcnRCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENJY2VUcmFuc3BvcnRCYWNrZW5kLmNwcApAQCAtOTUsNyAr
OTUsNyBAQCBwcml2YXRlOgogCiBMaWJXZWJSVENJY2VUcmFuc3BvcnRCYWNrZW5kT2JzZXJ2ZXI6
OkxpYldlYlJUQ0ljZVRyYW5zcG9ydEJhY2tlbmRPYnNlcnZlcihSVENJY2VUcmFuc3BvcnRCYWNr
ZW5kOjpDbGllbnQmIGNsaWVudCwgcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6SWNlVHJhbnNw
b3J0SW50ZXJmYWNlPiYmIGJhY2tlbmQpCiAgICAgOiBtX2JhY2tlbmQoV1RGTW92ZShiYWNrZW5k
KSkKLSAgICAsIG1fY2xpZW50KG1ha2VXZWFrUHRyKGNsaWVudCkpCisgICAgLCBtX2NsaWVudChj
bGllbnQpCiB7CiAgICAgQVNTRVJUKG1fYmFja2VuZCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBTZW5kZXJC
YWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRj
L0xpYldlYlJUQ1J0cFNlbmRlckJhY2tlbmQuY3BwCmluZGV4IGM5OTkyMjAzYTViZDVkMTc5Mjk5
YWY4NzY5NTg1YTJlMjE2MmVlZjYuLmJlNTU1NjM3NzdhYTYyYzc0YjI5ZmE4MjY2ODkzM2NhYTY0
NjQyZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGli
d2VicnRjL0xpYldlYlJUQ1J0cFNlbmRlckJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFNlbmRlckJhY2tlbmQu
Y3BwCkBAIC00MSwxMyArNDEsMTMgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogTGliV2ViUlRD
UnRwU2VuZGVyQmFja2VuZDo6TGliV2ViUlRDUnRwU2VuZGVyQmFja2VuZChMaWJXZWJSVENQZWVy
Q29ubmVjdGlvbkJhY2tlbmQmIGJhY2tlbmQsIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlJ0
cFNlbmRlckludGVyZmFjZT4mJiBydGNTZW5kZXIpCi0gICAgOiBtX3BlZXJDb25uZWN0aW9uQmFj
a2VuZChtYWtlV2Vha1B0cigmYmFja2VuZCkpCisgICAgOiBtX3BlZXJDb25uZWN0aW9uQmFja2Vu
ZChiYWNrZW5kKQogICAgICwgbV9ydGNTZW5kZXIoV1RGTW92ZShydGNTZW5kZXIpKQogewogfQog
CiBMaWJXZWJSVENSdHBTZW5kZXJCYWNrZW5kOjpMaWJXZWJSVENSdHBTZW5kZXJCYWNrZW5kKExp
YldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZCYgYmFja2VuZCwgcnRjOjpzY29wZWRfcmVmcHRy
PHdlYnJ0Yzo6UnRwU2VuZGVySW50ZXJmYWNlPiYmIHJ0Y1NlbmRlciwgU291cmNlJiYgc291cmNl
KQotICAgIDogbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQobWFrZVdlYWtQdHIoJmJhY2tlbmQpKQor
ICAgIDogbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQoYmFja2VuZCkKICAgICAsIG1fcnRjU2VuZGVy
KFdURk1vdmUocnRjU2VuZGVyKSkKICAgICAsIG1fc291cmNlKFdURk1vdmUoc291cmNlKSkKIHsK
QEAgLTYyLDcgKzYyLDcgQEAgTGliV2ViUlRDUnRwU2VuZGVyQmFja2VuZDo6fkxpYldlYlJUQ1J0
cFNlbmRlckJhY2tlbmQoKQogdm9pZCBMaWJXZWJSVENSdHBTZW5kZXJCYWNrZW5kOjpzdGFydFNv
dXJjZSgpCiB7CiAgICAgLy8gV2UgYXN5bmNocm9ub3VzbHkgc3RhcnQgdGhlIHNvdXJjZXMgdG8g
Z3VhcmFudGVlIG1lZGlhIGdvZXMgdGhyb3VnaCB0aGUgdHJhbnNmb3JtIGlmIGEgdHJhbnNmb3Jt
IGlzIHNldCB3aGVuIGNyZWF0aW5nIHRoZSB0cmFjay4KLSAgICBjYWxsT25NYWluVGhyZWFkKFt3
ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBzb3VyY2UgPSBtX3NvdXJjZV0oKSBtdXRhYmxl
IHsKKyAgICBjYWxsT25NYWluVGhyZWFkKFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBz
b3VyY2UgPSBtX3NvdXJjZV0oKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcyB8fCB3
ZWFrVGhpcy0+bV9zb3VyY2UgIT0gc291cmNlKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICBzd2l0Y2hPbihzb3VyY2UsIFtdKFJlZjxSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U+JiBz
b3VyY2UpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
bGlid2VicnRjL0xpYldlYlJUQ1NjdHBUcmFuc3BvcnRCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1NjdHBUcmFuc3BvcnRC
YWNrZW5kLmNwcAppbmRleCA4MGMyYjc3NTZlYmE0ZDljNTAyYjVhOWE0MDBmZTAyN2Q4Nzc1Yzc0
Li5hOGU3MjlmMDUxMWRkZTUzMWUwYmZhMjc2ZTkyZDdiOWNiMTUxMmE1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENTY3Rw
VHJhbnNwb3J0QmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDU2N0cFRyYW5zcG9ydEJhY2tlbmQuY3BwCkBAIC03Niw3
ICs3Niw3IEBAIHByaXZhdGU6CiAKIExpYldlYlJUQ1NjdHBUcmFuc3BvcnRCYWNrZW5kT2JzZXJ2
ZXI6OkxpYldlYlJUQ1NjdHBUcmFuc3BvcnRCYWNrZW5kT2JzZXJ2ZXIoUlRDU2N0cFRyYW5zcG9y
dEJhY2tlbmQ6OkNsaWVudCYgY2xpZW50LCBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpTY3Rw
VHJhbnNwb3J0SW50ZXJmYWNlPiYgYmFja2VuZCkKICAgICA6IG1fYmFja2VuZChiYWNrZW5kKQot
ICAgICwgbV9jbGllbnQobWFrZVdlYWtQdHIoY2xpZW50KSkKKyAgICAsIG1fY2xpZW50KGNsaWVu
dCkKIHsKICAgICBBU1NFUlQobV9iYWNrZW5kKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlc3BvbnNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlc3BvbnNlLmNwcAppbmRleCAy
NjQ3MjUyNjM1MDM0ODUyYWIyYWU5NWIyNjhkMjI3ODg2NTlmYmQzLi4xNjAwYTkyNjI2YjQ5OTU0
NGU5NGIxZjNlNDI5MDIwNGQ3Yzk4ZTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXNwb25zZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVzcG9uc2UuY3BwCkBAIC00MCw3ICs0
MCw3IEBAIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChQYXltZW50UmVzcG9uc2UpOwogCiBQ
YXltZW50UmVzcG9uc2U6OlBheW1lbnRSZXNwb25zZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBQYXltZW50UmVxdWVzdCYgcmVxdWVzdCkKICAgICA6IEFjdGl2ZURPTU9iamVjdCB7
IGNvbnRleHQgfQotICAgICwgbV9yZXF1ZXN0IHsgbWFrZVdlYWtQdHIocmVxdWVzdCkgfQorICAg
ICwgbV9yZXF1ZXN0IHsgcmVxdWVzdCB9CiB7CiAgICAgc3VzcGVuZElmTmVlZGVkKCk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Blcm1pc3Npb25zL1Blcm1pc3Npb25z
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGVybWlzc2lvbnMvUGVybWlzc2lvbnMuY3Bw
CmluZGV4IDJkOGJkZTBiYjJiMzA4OTVjYzZkOWU1Mzg5MWQ5MTMyYjcxNWQ2MzYuLjIxMzNiMmE3
MGJiODgyNWNmM2NjNGRjNjEyMDg5MjM0OTViOThhMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvcGVybWlzc2lvbnMvUGVybWlzc2lvbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvcGVybWlzc2lvbnMvUGVybWlzc2lvbnMuY3BwCkBAIC00Nyw3ICs0Nyw3IEBA
IFJlZjxQZXJtaXNzaW9ucz4gUGVybWlzc2lvbnM6OmNyZWF0ZShOYXZpZ2F0b3ImIG5hdmlnYXRv
cikKIH0KIAogUGVybWlzc2lvbnM6OlBlcm1pc3Npb25zKE5hdmlnYXRvciYgbmF2aWdhdG9yKQot
ICAgIDogbV9uYXZpZ2F0b3IobWFrZVdlYWtQdHIobmF2aWdhdG9yKSkKKyAgICA6IG1fbmF2aWdh
dG9yKG5hdmlnYXRvcikKIHsKICAgICBpZiAoYXV0byBjb250ZXh0ID0gbmF2aWdhdG9yLnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSkKICAgICAgICAgbV9jb250cm9sbGVyID0gY29udGV4dC0+cGVy
bWlzc2lvbkNvbnRyb2xsZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
cGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbQppbmRleCA3NDk5NGUy
YzUxMDBlY2FiYTYxNTkwZmIxMTgwYWEwYmMzN2IwZGI2Li41YWMxMDJhMjU3OTY0Y2IyMDJkZjAx
NDM5ZGQ5MjZhOGRlYWI5YTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Bs
dWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1tCkBAIC0xMDgsNyAr
MTA4LDcgQEAgYm9vbCBRdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudDo6aXNFbmFibGVkQnlTZXR0
aW5ncyhjb25zdCBTZXR0aW5ncyYgc2V0dGluZ3MpCiB9CiAKIFF1aWNrVGltZVBsdWdpblJlcGxh
Y2VtZW50OjpRdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudChIVE1MUGx1Z0luRWxlbWVudCYgcGx1
Z2luLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1lcywgY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIHBhcmFtVmFsdWVzKQotICAgIDogbV9wYXJlbnRFbGVtZW50KG1ha2VXZWFrUHRyKHBsdWdp
bikpCisgICAgOiBtX3BhcmVudEVsZW1lbnQocGx1Z2luKQogICAgICwgbV9uYW1lcyhwYXJhbU5h
bWVzKQogICAgICwgbV92YWx1ZXMocGFyYW1WYWx1ZXMpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3Bw
CmluZGV4IGI3NzM0MmUwOGJhNzhlNTdiNGQyZGUwMDI2OTNkMjgzOTBlYTA2M2UuLjI2ZGQyNWNj
YmU4MmE4OTlhNmJmMzUxNGFmNWNiZTY2MDEwODFjMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3Bw
CkBAIC02MCw3ICs2MCw3IEBAIGJvb2wgWW91VHViZVBsdWdpblJlcGxhY2VtZW50OjpzdXBwb3J0
c0ZpbGVFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHRlbnNpb24pCiB9CiAKIFlvdVR1YmVQbHVn
aW5SZXBsYWNlbWVudDo6WW91VHViZVBsdWdpblJlcGxhY2VtZW50KEhUTUxQbHVnSW5FbGVtZW50
JiBwbHVnaW4sIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8
U3RyaW5nPiYgcGFyYW1WYWx1ZXMpCi0gICAgOiBtX3BhcmVudEVsZW1lbnQobWFrZVdlYWtQdHIo
cGx1Z2luKSkKKyAgICA6IG1fcGFyZW50RWxlbWVudChwbHVnaW4pCiB7CiAgICAgQVNTRVJUKHBh
cmFtTmFtZXMuc2l6ZSgpID09IHBhcmFtVmFsdWVzLnNpemUoKSk7CiAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBwYXJhbU5hbWVzLnNpemUoKTsgKytpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5YmFjay5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3JlbW90ZXBsYXliYWNrL1JlbW90ZVBsYXliYWNrLmNwcAppbmRleCA4
YTU0YTRlZDNhZDI1MTBiMTQ2OTMyZjg4MDM4ODNmODQ2ZGRjNmIwLi40YTE1NWIwYTQ1YWEyZDU2
MTYxMDNhMjkzYWVlNzQyMjdlMjBjY2Y0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3JlbW90ZXBsYXliYWNrL1JlbW90ZVBsYXliYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3JlbW90ZXBsYXliYWNrL1JlbW90ZVBsYXliYWNrLmNwcApAQCAtNTAsNyArNTAs
NyBAQCBSZWY8UmVtb3RlUGxheWJhY2s+IFJlbW90ZVBsYXliYWNrOjpjcmVhdGUoSFRNTE1lZGlh
RWxlbWVudCYgZWxlbWVudCkKIAogUmVtb3RlUGxheWJhY2s6OlJlbW90ZVBsYXliYWNrKEhUTUxN
ZWRpYUVsZW1lbnQmIGVsZW1lbnQpCiAgICAgOiBXZWJDb3JlOjpBY3RpdmVET01PYmplY3QoZWxl
bWVudC5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCi0gICAgLCBtX21lZGlhRWxlbWVudChtYWtl
V2Vha1B0cihlbGVtZW50KSkKKyAgICAsIG1fbWVkaWFFbGVtZW50KGVsZW1lbnQpCiB7CiAgICAg
c3VzcGVuZElmTmVlZGVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9ET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcAppbmRleCAzZWRmYTdiMGY5
MzUwMmM2YWY1NTE5M2JmZDBiNzc4YjIyODNjMjhhLi42NDRjODg0Y2MxMmE4NTE1NjllMTQ2MGU5
NDBiYzU3NWEzYmViYjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9ET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAKQEAgLTcxLDcgKzcxLDcgQEAg
U3BlZWNoU3ludGhlc2lzKiBET01XaW5kb3dTcGVlY2hTeW50aGVzaXM6OnNwZWVjaFN5bnRoZXNp
cyhET01XaW5kb3cmIHdpbmRvdykKIFNwZWVjaFN5bnRoZXNpcyogRE9NV2luZG93U3BlZWNoU3lu
dGhlc2lzOjpzcGVlY2hTeW50aGVzaXMoKQogewogICAgIGlmICghbV9zcGVlY2hTeW50aGVzaXMg
JiYgZnJhbWUoKSAmJiBmcmFtZSgpLT5kb2N1bWVudCgpKQotICAgICAgICBtX3NwZWVjaFN5bnRo
ZXNpcyA9IFNwZWVjaFN5bnRoZXNpczo6Y3JlYXRlKG1ha2VXZWFrUHRyKGZyYW1lKCktPnBhZ2Uo
KS0+c3BlZWNoU3ludGhlc2lzQ2xpZW50KCkpLCAqZnJhbWUoKS0+ZG9jdW1lbnQoKSk7CisgICAg
ICAgIG1fc3BlZWNoU3ludGhlc2lzID0gU3BlZWNoU3ludGhlc2lzOjpjcmVhdGUoZnJhbWUoKS0+
cGFnZSgpLT5zcGVlY2hTeW50aGVzaXNDbGllbnQoKSwgKmZyYW1lKCktPmRvY3VtZW50KCkpOwog
ICAgIHJldHVybiBtX3NwZWVjaFN5bnRoZXNpcy5nZXQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2VJbXBsLmNwcAppbmRleCBlNDg1NTk0YjgxMjJiMDc2ZmVlMWQ0ZGFhMDcy
MjMyMTA3ZTI3N2JiLi5jMjNhOGQ2N2NiNDgxMjMzZjdjYjRiNTE5YjEzNmIyMjE5MDZiZWJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2VJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcApAQCAtNzAsNyArNzAsNyBA
QCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjpTcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2VJbXBsKFNwZWVjaFJlYwogICAgIG1fc291cmNlLT5zZXRMb2dnZXIoKm51bGxM
b2dnZXIoKSwgbmV4dExvZ0lkZW50aWZpZXIoKSk7CiAjZW5kaWYKIAotICAgIGF1dG8gd2Vha1Ro
aXMgPSBtYWtlV2Vha1B0cih0aGlzKTsKKyAgICBpbml0aWFsaXplV2Vha1B0ckZhY3RvcnkoKTsK
IH0KIAogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6flNwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZUltcGwoKQpAQCAtOTAsNyArOTAsNyBAQCBib29sIFNwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OnVwZGF0ZURhdGFTb3VyY2UoY29uc3QgQ0FBdWRpb1N0
cmVhbURlcwogCiAgICAgYXV0byBkYXRhU291cmNlID0gQXVkaW9TYW1wbGVEYXRhU291cmNlOjpj
cmVhdGUoYXVkaW9EZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkgKiAxLCBtX3NvdXJjZS5nZXQoKSk7
CiAgICAgaWYgKGRhdGFTb3VyY2UtPnNldElucHV0Rm9ybWF0KGF1ZGlvRGVzY3JpcHRpb24pKSB7
Ci0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIo
dGhpcyldIHsKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgd2Vha1RoaXMgPSBXZWFr
UHRyIHsgKnRoaXMgfV0gewogICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQogICAgICAgICAgICAg
ICAgIG1fc3RhdGVVcGRhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRl
RXJyb3IobV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNo
UmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgIlVuYWJsZSB0byBzZXQgaW5wdXQg
Zm9ybWF0IiB9KSk7CiAgICAgICAgIH0pOwpAQCAtOTgsNyArOTgsNyBAQCBib29sIFNwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OnVwZGF0ZURhdGFTb3VyY2UoY29uc3QgQ0FBdWRp
b1N0cmVhbURlcwogICAgIH0KIAogICAgIGlmIChkYXRhU291cmNlLT5zZXRPdXRwdXRGb3JtYXQo
YXVkaW9EZXNjcmlwdGlvbikpIHsKLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgd2Vh
a1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0geworICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0
aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XSB7CiAgICAgICAgICAgICBpZiAod2Vh
a1RoaXMpCiAgICAgICAgICAgICAgICAgbV9zdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29n
bml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAi
VW5hYmxlIHRvIHNldCBvdXRwdXQgZm9ybWF0IiB9KSk7CiAgICAgICAgIH0pOwpAQCAtMTM4LDcg
KzEzOCw3IEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6YXVkaW9T
YW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYKIAogICAgIG1fZGF0YVNvdXJjZS0+cHVz
aFNhbXBsZXModGltZSwgZGF0YSwgc2FtcGxlQ291bnQpOwogCi0gICAgY2FsbE9uTWFpblRocmVh
ZChbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgdGltZSwgYXVkaW9EZXNjcmlwdGlvbiwg
c2FtcGxlQ291bnRdIHsKKyAgICBjYWxsT25NYWluVGhyZWFkKFt3ZWFrVGhpcyA9IFdlYWtQdHIg
eyAqdGhpcyB9LCB0aW1lLCBhdWRpb0Rlc2NyaXB0aW9uLCBzYW1wbGVDb3VudF0gewogICAgICAg
ICBpZiAod2Vha1RoaXMpCiAgICAgICAgICAgICB3ZWFrVGhpcy0+cHVsbFNhbXBsZXNBbmRDYWxs
RGF0YUNhbGxiYWNrKHRpbWUsIGF1ZGlvRGVzY3JpcHRpb24sIHNhbXBsZUNvdW50KTsKICAgICB9
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml6ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXpl
ci5jcHAKaW5kZXggMDZmYmRkMmZlNDNjMTU1NjE2YzY5ZWE5ODNjNTBjZWYyOGEyNDVhYi4uNmY2
YzE2ZDA4Nzk4ZmE3MmU2NDVlZTc3ZWNhOTdkODcxZTRkMjE5NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAKQEAgLTk3LDEyICs5
NywxMiBAQCB2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0KFJlZjxSZWFsdGltZU1lZGlhU291
cmNlPiYmIHNvdXJjZSwgYm9vbCBtb2NrU3BlZWNoUgogCiB2b2lkIFNwZWVjaFJlY29nbml6ZXI6
OnN0YXJ0Q2FwdHVyZShSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UpCiB7Ci0gICAg
YXV0byBkYXRhQ2FsbGJhY2sgPSBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0oY29uc3Qg
YXV0byYgdGltZSwgY29uc3QgYXV0byYgZGF0YSwgY29uc3QgYXV0byYgZGVzY3JpcHRpb24sIGF1
dG8gc2FtcGxlQ291bnQpIHsKKyAgICBhdXRvIGRhdGFDYWxsYmFjayA9IFt3ZWFrVGhpcyA9IFdl
YWtQdHIgeyAqdGhpcyB9XShjb25zdCBhdXRvJiB0aW1lLCBjb25zdCBhdXRvJiBkYXRhLCBjb25z
dCBhdXRvJiBkZXNjcmlwdGlvbiwgYXV0byBzYW1wbGVDb3VudCkgewogICAgICAgICBpZiAod2Vh
a1RoaXMpCiAgICAgICAgICAgICB3ZWFrVGhpcy0+ZGF0YUNhcHR1cmVkKHRpbWUsIGRhdGEsIGRl
c2NyaXB0aW9uLCBzYW1wbGVDb3VudCk7CiAgICAgfTsKIAotICAgIGF1dG8gc3RhdGVVcGRhdGVD
YWxsYmFjayA9IFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXShjb25zdCBhdXRvJiB1cGRh
dGUpIHsKKyAgICBhdXRvIHN0YXRlVXBkYXRlQ2FsbGJhY2sgPSBbd2Vha1RoaXMgPSBXZWFrUHRy
IHsgKnRoaXMgfV0oY29uc3QgYXV0byYgdXBkYXRlKSB7CiAgICAgICAgIGlmICh3ZWFrVGhpcykK
ICAgICAgICAgICAgIHdlYWtUaGlzLT5tX2RlbGVnYXRlQ2FsbGJhY2sodXBkYXRlKTsKICAgICB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhl
c2lzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5j
cHAKaW5kZXggNzM4MzM0YTJiNzc3NTVmMjljMDViNzQ0YThmZmNjZjA1NjY2ODUxYS4uMTJjNjgz
OWRkYmE0NDQyYjQ0MGJjMTdlOWIwMzJlOWZjZWFlNWE3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuY3BwCkBAIC02MCw3ICs2MCw3IEBA
IFNwZWVjaFN5bnRoZXNpczo6U3BlZWNoU3ludGhlc2lzKFdlYWtQdHI8U3BlZWNoU3ludGhlc2lz
Q2xpZW50PiBjbGllbnQsIERvY3VtZW50CiAjZW5kaWYKIAogICAgIGlmIChtX3NwZWVjaFN5bnRo
ZXNpc0NsaWVudCkKLSAgICAgICAgbV9zcGVlY2hTeW50aGVzaXNDbGllbnQtPnNldE9ic2VydmVy
KG1ha2VXZWFrUHRyKHRoaXMpKTsKKyAgICAgICAgbV9zcGVlY2hTeW50aGVzaXNDbGllbnQtPnNl
dE9ic2VydmVyKCp0aGlzKTsKIH0KIAogdm9pZCBTcGVlY2hTeW50aGVzaXM6OnNldFBsYXRmb3Jt
U3ludGhlc2l6ZXIoc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI+IHN5
bnRoZXNpemVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvY29j
b2EvU3BlZWNoUmVjb2duaXplckNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvY29jb2EvU3BlZWNoUmVjb2duaXplckNvY29hLm1tCmluZGV4IDdkNWJjOGZiYWQ5NjljY2Nk
NTMxZDBkOTlmYTcyMDU4MTViYzg0OTcuLmJiNTAwMTgxOGRmYjFmYjZhNTVmOWIwNTE0ZDQxZDgy
MTdjZmM3MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL2NvY29h
L1NwZWVjaFJlY29nbml6ZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9jb2NvYS9TcGVlY2hSZWNvZ25pemVyQ29jb2EubW0KQEAgLTQ1LDcgKzQ1LDcgQEAgdm9p
ZCBTcGVlY2hSZWNvZ25pemVyOjpkYXRhQ2FwdHVyZWQoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBj
b25zdCBQbGF0Zm9ybUF1ZGlvRGEKIGJvb2wgU3BlZWNoUmVjb2duaXplcjo6c3RhcnRSZWNvZ25p
dGlvbihib29sIG1vY2tTcGVlY2hSZWNvZ25pdGlvbkVuYWJsZWQsIFNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBsb2Nh
bGVJZGVudGlmaWVyLCBib29sIGNvbnRpbnVvdXMsIGJvb2wgaW50ZXJpbVJlc3VsdHMsIHVpbnQ2
NF90IGFsdGVybmF0aXZlcykKIHsKICAgICBhdXRvIHRhc2tDbGFzcyA9IG1vY2tTcGVlY2hSZWNv
Z25pdGlvbkVuYWJsZWQgPyBbV2ViU3BlZWNoUmVjb2duaXplclRhc2tNb2NrIGNsYXNzXSA6IFtX
ZWJTcGVlY2hSZWNvZ25pemVyVGFzayBjbGFzc107Ci0gICAgbV90YXNrID0gYWRvcHROUyhbW3Rh
c2tDbGFzcyBhbGxvY10gaW5pdFdpdGhJZGVudGlmaWVyOmlkZW50aWZpZXIgbG9jYWxlOmxvY2Fs
ZUlkZW50aWZpZXIgZG9NdWx0aXBsZVJlY29nbml0aW9uczpjb250aW51b3VzIHJlcG9ydEludGVy
aW1SZXN1bHRzOmludGVyaW1SZXN1bHRzIG1heEFsdGVybmF0aXZlczphbHRlcm5hdGl2ZXMgZGVs
ZWdhdGVDYWxsYmFjazpbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0oY29uc3QgV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGUmIHVwZGF0ZSkgeworICAgIG1fdGFzayA9IGFkb3B0
TlMoW1t0YXNrQ2xhc3MgYWxsb2NdIGluaXRXaXRoSWRlbnRpZmllcjppZGVudGlmaWVyIGxvY2Fs
ZTpsb2NhbGVJZGVudGlmaWVyIGRvTXVsdGlwbGVSZWNvZ25pdGlvbnM6Y29udGludW91cyByZXBv
cnRJbnRlcmltUmVzdWx0czppbnRlcmltUmVzdWx0cyBtYXhBbHRlcm5hdGl2ZXM6YWx0ZXJuYXRp
dmVzIGRlbGVnYXRlQ2FsbGJhY2s6W3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dKGNvbnN0
IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlJiB1cGRhdGUpIHsKICAgICAgICAgaWYg
KHdlYWtUaGlzKQogICAgICAgICAgICAgd2Vha1RoaXMtPm1fZGVsZWdhdGVDYWxsYmFjayh1cGRh
dGUpOwogICAgIH1dKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFn
ZS9TdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2UvU3Rv
cmFnZU1hbmFnZXIuY3BwCmluZGV4IDBkNTlhNDAxN2NkOTliODU4N2Y4MjEwZWJhMTI2ODkwMzA5
NGNiOGIuLjEwNzI1NzI0ZjFhYzcxMzgxM2I5MzJlMzMyMTk5YzJkNTZkNzdhZjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcApAQCAt
NDksNyArNDksNyBAQCBSZWY8U3RvcmFnZU1hbmFnZXI+IFN0b3JhZ2VNYW5hZ2VyOjpjcmVhdGUo
TmF2aWdhdG9yQmFzZSYgbmF2aWdhdG9yKQogfQogCiBTdG9yYWdlTWFuYWdlcjo6U3RvcmFnZU1h
bmFnZXIoTmF2aWdhdG9yQmFzZSYgbmF2aWdhdG9yKQotICAgIDogbV9uYXZpZ2F0b3IobWFrZVdl
YWtQdHIobmF2aWdhdG9yKSkKKyAgICA6IG1fbmF2aWdhdG9yKG5hdmlnYXRvcikKIHsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL1dvcmtlclN0b3JhZ2VD
b25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9Xb3JrZXJTdG9y
YWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggNThkNWM1ZmJhYzM0YzA1ODEwOTFmMjRkNzNhZWExMTk2
MDc2NTA4MS4uYTgyMjAxZTkyYWE5MmNlYjJhMzc0OGI5MzUyMjM0MGMyMWM5YmFmNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL1dvcmtlclN0b3JhZ2VDb25uZWN0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2UvV29ya2VyU3RvcmFn
ZUNvbm5lY3Rpb24uY3BwCkBAIC00MSw3ICs0MSw3IEBAIFJlZjxXb3JrZXJTdG9yYWdlQ29ubmVj
dGlvbj4gV29ya2VyU3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0ZShXb3JrZXJHbG9iYWxTY29wZSYK
IH0KIAogV29ya2VyU3RvcmFnZUNvbm5lY3Rpb246OldvcmtlclN0b3JhZ2VDb25uZWN0aW9uKFdv
cmtlckdsb2JhbFNjb3BlJiBzY29wZSkKLSAgICA6IG1fc2NvcGUobWFrZVdlYWtQdHIoc2NvcGUp
KQorICAgIDogbV9zY29wZShzY29wZSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb05vZGUuY3BwCmluZGV4IDIxODdjZGM5YTVlZTQ5MDY5N2M2YWNlM2U3
NTUwZWNiMjFmNGFjNzEuLjNhZWU0NjYwMzE3ZGJjYWM1OTZiMTk5YzAwODU4MjQxMzQ4YjUzNjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5jcHAKQEAg
LTEwMiw3ICsxMDIsNyBAQCBhdXRvIEF1ZGlvTm9kZTo6dG9XZWFrT3JTdHJvbmdDb250ZXh0KEJh
c2VBdWRpb0NvbnRleHQmIGNvbnRleHQsIE5vZGVUeXBlIG5vZGVUeQogewogICAgIC8vIERlc3Rp
bmF0aW9uIG5vZGVzIGFyZSBvd25lZCBieSB0aGUgQmFzZUF1ZGlvQ29udGV4dCBzbyB3ZSB1c2Ug
V2Vha1B0ciB0byBhdm9pZCBhIHJldGFpbiBjeWNsZS4KICAgICBpZiAobm9kZVR5cGUgPT0gQXVk
aW9Ob2RlOjpOb2RlVHlwZURlc3RpbmF0aW9uKQotICAgICAgICByZXR1cm4gbWFrZVdlYWtQdHIo
Y29udGV4dCwgRW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlvbnM6Ok5vKTsgLy8gV2ViQXVk
aW8gY29kZSB1c2VzIGxvY2tpbmcgd2hlbiBhY2Nlc3NpbmcgdGhlIGNvbnRleHQuCisgICAgICAg
IHJldHVybiBXZWFrUHRyIHsgY29udGV4dCwgRW5hYmxlV2Vha1B0clRocmVhZGluZ0Fzc2VydGlv
bnM6Ok5vIH07IC8vIFdlYkF1ZGlvIGNvZGUgdXNlcyBsb2NraW5nIHdoZW4gYWNjZXNzaW5nIHRo
ZSBjb250ZXh0LgogICAgIHJldHVybiBSZWYgeyBjb250ZXh0IH07CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TdW1taW5nSnVuY3Rpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1N1bW1pbmdKdW5jdGlvbi5j
cHAKaW5kZXggZjdlNzZiMjc4NTdlYWRiZTQ0ZWZhZGI4OTg2Yzg5NDYxNzZjMzQ1Ni4uOGVmOWZk
NzQ1ODAyYzE3MzBkYzViNjcwODFhZmRhZTQ1MzM1OWJmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1N1bW1pbmdKdW5jdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1N1bW1pbmdKdW5jdGlvbi5jcHAKQEAg
LTM1LDcgKzM1LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQXVkaW9TdW1taW5nSnVuY3Rp
b246OkF1ZGlvU3VtbWluZ0p1bmN0aW9uKEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQpCi0gICAg
OiBtX2NvbnRleHQobWFrZVdlYWtQdHIoY29udGV4dCwgRW5hYmxlV2Vha1B0clRocmVhZGluZ0Fz
c2VydGlvbnM6Ok5vKSkgLy8gV2ViQXVkaW8gY29kZSB1c2VzIGxvY2tpbmcgd2hlbiBhY2Nlc3Np
bmcgdGhlIGNvbnRleHQuCisgICAgOiBtX2NvbnRleHQoY29udGV4dCwgRW5hYmxlV2Vha1B0clRo
cmVhZGluZ0Fzc2VydGlvbnM6Ok5vKSAvLyBXZWJBdWRpbyBjb2RlIHVzZXMgbG9ja2luZyB3aGVu
IGFjY2Vzc2luZyB0aGUgY29udGV4dC4KIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuY3BwCmluZGV4IDQ0ZTE1ZDNiODJlMjg0MWJjNDk1
MWIwYWYwMDA1NTM1Y2NiZGIwODIuLjYwODJlMDE4N2ZlZmI3NzU4YzNiZDRhODdhODM4YWFjMDQ3
YzI1YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9X
b3JrbGV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29y
a2xldC5jcHAKQEAgLTUyLDcgKzUyLDcgQEAgUmVmPEF1ZGlvV29ya2xldD4gQXVkaW9Xb3JrbGV0
OjpjcmVhdGUoQmFzZUF1ZGlvQ29udGV4dCYgYXVkaW9Db250ZXh0KQogCiBBdWRpb1dvcmtsZXQ6
OkF1ZGlvV29ya2xldChCYXNlQXVkaW9Db250ZXh0JiBhdWRpb0NvbnRleHQpCiAgICAgOiBXb3Jr
bGV0KCphdWRpb0NvbnRleHQuZG9jdW1lbnQoKSkKLSAgICAsIG1fYXVkaW9Db250ZXh0KG1ha2VX
ZWFrUHRyKGF1ZGlvQ29udGV4dCkpCisgICAgLCBtX2F1ZGlvQ29udGV4dChhdWRpb0NvbnRleHQp
CiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5jcHAKaW5kZXggNGQzZTVjMDQ1MzQ2YzBk
MDEwNjlmMjdkMmNjNWRiNDcwMmZlNDA0My4uNWIyOGMyNzMxMTZmMDEzMGNmODFhZjYzYWI2MDA2
NjhlY2FmYzE5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eS5jcHAKQEAgLTYxLDcgKzYxLDcg
QEAgc3RhdGljIFdvcmtsZXRQYXJhbWV0ZXJzIGdlbmVyYXRlV29ya2xldFBhcmFtZXRlcnMoQXVk
aW9Xb3JrbGV0JiB3b3JrbGV0KQogfQogCiBBdWRpb1dvcmtsZXRNZXNzYWdpbmdQcm94eTo6QXVk
aW9Xb3JrbGV0TWVzc2FnaW5nUHJveHkoQXVkaW9Xb3JrbGV0JiB3b3JrbGV0KQotICAgIDogbV93
b3JrbGV0KG1ha2VXZWFrUHRyKHdvcmtsZXQpKQorICAgIDogbV93b3JrbGV0KHdvcmtsZXQpCiAg
ICAgLCBtX2RvY3VtZW50KCp3b3JrbGV0LmRvY3VtZW50KCkpCiAgICAgLCBtX3dvcmtsZXRUaHJl
YWQoQXVkaW9Xb3JrbGV0VGhyZWFkOjpjcmVhdGUoKnRoaXMsIGdlbmVyYXRlV29ya2xldFBhcmFt
ZXRlcnMod29ya2xldCkpKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCmluZGV4IDY0YmM2NTNlZjlmOTE0ZWU3ODIw
NWI3NDAyZTg2MTdlNjE5Y2IwODAuLmY1ZGM2ZTc3YWFhNGYwZGVmNjc2OGFmMjdjYzNjYzQ5MDM2
ODBlNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJT
b2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMv
V2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTYyLDggKzYyLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogY29uc3QgU2Vjb25kcyBUQ1BNYXhpbXVtU2VnbWVudExpZmV0aW1lIHsgMl9taW4gfTsKIAog
V2ViU29ja2V0Q2hhbm5lbDo6V2ViU29ja2V0Q2hhbm5lbChEb2N1bWVudCYgZG9jdW1lbnQsIFdl
YlNvY2tldENoYW5uZWxDbGllbnQmIGNsaWVudCwgU29ja2V0UHJvdmlkZXImIHByb3ZpZGVyKQot
ICAgIDogbV9kb2N1bWVudChtYWtlV2Vha1B0cihkb2N1bWVudCkpCi0gICAgLCBtX2NsaWVudCht
YWtlV2Vha1B0cihjbGllbnQpKQorICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKKyAgICAsIG1f
Y2xpZW50KGNsaWVudCkKICAgICAsIG1fcmVzdW1lVGltZXIoKnRoaXMsICZXZWJTb2NrZXRDaGFu
bmVsOjpyZXN1bWVUaW1lckZpcmVkKQogICAgICwgbV9jbG9zaW5nVGltZXIoKnRoaXMsICZXZWJT
b2NrZXRDaGFubmVsOjpjbG9zaW5nVGltZXJGaXJlZCkKICAgICAsIG1fcHJvZ3Jlc3NJZGVudGlm
aWVyKFdlYlNvY2tldENoYW5uZWxJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUoKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSSW5wdXRTb3VyY2UuY3BwCmlu
ZGV4IDk5NTA1N2Q0NTE2YmY3NzlmOTI1ODc2ZDlmNjJkODY0ZDdiODc0MGUuLmY1NmJiYmEwMTdk
MzgxNjVmZDgzODRmODlmODQ5YmQzZWQyODQyNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9XZWJYUklucHV0U291cmNlLmNwcApAQCAtNDgsNyArNDgsNyBAQCBSZWY8
V2ViWFJJbnB1dFNvdXJjZT4gV2ViWFJJbnB1dFNvdXJjZTo6Y3JlYXRlKERvY3VtZW50JiBkb2N1
bWVudCwgV2ViWFJTZXNzaW9uJgogfQogCiBXZWJYUklucHV0U291cmNlOjpXZWJYUklucHV0U291
cmNlKERvY3VtZW50JiBkb2N1bWVudCwgV2ViWFJTZXNzaW9uJiBzZXNzaW9uLCBkb3VibGUgdGlt
ZXN0YW1wLCBjb25zdCBQbGF0Zm9ybVhSOjpEZXZpY2U6OkZyYW1lRGF0YTo6SW5wdXRTb3VyY2Um
IHNvdXJjZSkKLSAgICA6IG1fc2Vzc2lvbihtYWtlV2Vha1B0cihzZXNzaW9uKSkKKyAgICA6IG1f
c2Vzc2lvbihzZXNzaW9uKQogICAgICwgbV90YXJnZXRSYXlTcGFjZShXZWJYUklucHV0U3BhY2U6
OmNyZWF0ZShkb2N1bWVudCwgc2Vzc2lvbiwgc291cmNlLnBvaW50ZXJPcmlnaW4pKQogICAgICwg
bV9jb25uZWN0VGltZSh0aW1lc3RhbXApCiAjaWYgRU5BQkxFKEdBTUVQQUQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSSW5wdXRTcGFjZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSSW5wdXRTcGFjZS5jcHAKaW5kZXggNDNmMzYy
M2I2ZjAxOTliNzVhNDE1ZDNlNjY5ZTQxYTU2N2MwNDM0Mi4uOWU4NTY2NzBlNjQwN2UzYTg5NzQ1
MDkwNDkwNDcyMjlkMjZmODE5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9XZWJYUklucHV0U3BhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvV2ViWFJJbnB1dFNwYWNlLmNwcApAQCAtNDYsNyArNDYsNyBAQCBSZWY8V2ViWFJJbnB1dFNw
YWNlPiBXZWJYUklucHV0U3BhY2U6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIFdlYlhSU2Vz
c2lvbiYgcwogCiBXZWJYUklucHV0U3BhY2U6OldlYlhSSW5wdXRTcGFjZShEb2N1bWVudCYgZG9j
dW1lbnQsIFdlYlhSU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgUGxhdGZvcm1YUjo6RGV2aWNlOjpG
cmFtZURhdGE6OklucHV0U291cmNlUG9zZSYgcG9zZSkKICAgICA6IFdlYlhSU3BhY2UoZG9jdW1l
bnQsIFdlYlhSUmlnaWRUcmFuc2Zvcm06OmNyZWF0ZSgpKQotICAgICwgbV9zZXNzaW9uKG1ha2VX
ZWFrUHRyKCZzZXNzaW9uKSkKKyAgICAsIG1fc2Vzc2lvbihzZXNzaW9uKQogICAgICwgbV9wb3Nl
KHBvc2UpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dl
YlhSUmVmZXJlbmNlU3BhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJY
UlJlZmVyZW5jZVNwYWNlLmNwcAppbmRleCA5NWY3ZDI4NzY0NTI0MzliNzI1ZjRmM2E1ZTZjMDZj
ODk1ZGE3ZTBmLi5lNjEzMmViY2UzMWQxMGQyNWVkMjNiZDZjOGQ3NjU2MzRiYWRlYzFkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUmVmZXJlbmNlU3BhY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJSZWZlcmVuY2VTcGFj
ZS5jcHAKQEAgLTU2LDcgKzU2LDcgQEAgUmVmPFdlYlhSUmVmZXJlbmNlU3BhY2U+IFdlYlhSUmVm
ZXJlbmNlU3BhY2U6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIFdlYlhSU2UKIAogV2ViWFJS
ZWZlcmVuY2VTcGFjZTo6V2ViWFJSZWZlcmVuY2VTcGFjZShEb2N1bWVudCYgZG9jdW1lbnQsIFdl
YlhSU2Vzc2lvbiYgc2Vzc2lvbiwgUmVmPFdlYlhSUmlnaWRUcmFuc2Zvcm0+JiYgb2Zmc2V0LCBY
UlJlZmVyZW5jZVNwYWNlVHlwZSB0eXBlKQogICAgIDogV2ViWFJTcGFjZShkb2N1bWVudCwgV1RG
TW92ZShvZmZzZXQpKQotICAgICwgbV9zZXNzaW9uKG1ha2VXZWFrUHRyKHNlc3Npb24pKQorICAg
ICwgbV9zZXNzaW9uKHNlc3Npb24pCiAgICAgLCBtX3R5cGUodHlwZSkKIHsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJSZW5kZXJTdGF0ZS5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlJlbmRlclN0YXRlLmgKaW5kZXggY2M4N2Zi
MTRjNTZmMjZlNGJlYWE4OGM1ODY5ZDE0NzQ4ZGFkYmZiMC4uNTczOGU1NGM3YjdlNDUxNjZjMmFl
NmJjY2U1OTUzMzcwYzU5OTQ1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9XZWJYUlJlbmRlclN0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9XZWJYUlJlbmRlclN0YXRlLmgKQEAgLTU2LDcgKzU2LDcgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0QmFzZUxheWVyKFdlYlhSV2ViR0xMYXllciogYmFzZUxheWVyKSB7IG1fYmFzZUxheWVyID0g
YmFzZUxheWVyOyB9CiAKICAgICBIVE1MQ2FudmFzRWxlbWVudCogb3V0cHV0Q2FudmFzKCkgY29u
c3QgeyByZXR1cm4gbV9vdXRwdXRDYW52YXMuZ2V0KCk7IH0KLSAgICB2b2lkIHNldE91dHB1dENh
bnZhcyhIVE1MQ2FudmFzRWxlbWVudCogY2FudmFzKSB7IG1fb3V0cHV0Q2FudmFzID0gbWFrZVdl
YWtQdHIoY2FudmFzKTsgfQorICAgIHZvaWQgc2V0T3V0cHV0Q2FudmFzKEhUTUxDYW52YXNFbGVt
ZW50KiBjYW52YXMpIHsgbV9vdXRwdXRDYW52YXMgPSBjYW52YXM7IH0KIAogICAgIGJvb2wgaXND
b21wb3NpdGlvbkVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2NvbXBvc2l0aW9uRW5hYmxlZDsg
fQogICAgIHZvaWQgc2V0Q29tcG9zaXRpb25FbmFibGVkKGJvb2wgY29tcG9zaXRpb25FbmFibGVk
KSB7IG1fY29tcG9zaXRpb25FbmFibGVkID0gY29tcG9zaXRpb25FbmFibGVkOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUmlnaWRUcmFuc2Zvcm0uY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlJpZ2lkVHJhbnNmb3JtLmNwcApp
bmRleCA2ODNmNmYzNjEyMGNkZWNhYjAzMzFjODE5MDQwZWNmMDQ5ZGYwNGI1Li43NTY2YWMzZTg4
NGE5YmI5MzIxMmZlZjFiMGNiODljYWY1NGE2NjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUmlnaWRUcmFuc2Zvcm0uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvV2ViWFJSaWdpZFRyYW5zZm9ybS5jcHAKQEAgLTE1Myw3ICsxNTMs
NyBAQCBjb25zdCBXZWJYUlJpZ2lkVHJhbnNmb3JtJiBXZWJYUlJpZ2lkVHJhbnNmb3JtOjppbnZl
cnNlKCkKIAogICAgIG1faW52ZXJzZSA9IFdlYlhSUmlnaWRUcmFuc2Zvcm06OmNyZWF0ZSgqaW52
ZXJzZVRyYW5zZm9ybSk7CiAgICAgLy8gVGhlIGludmVyc2Ugb2YgYSBpbnZlcnNlIG9iamVjdCBz
aG91bGQgcmV0dXJuIHRoZSBvcmlnaW5hbCBvYmplY3QuCi0gICAgbV9pbnZlcnNlLT5tX3BhcmVu
dEludmVyc2UgPSBtYWtlV2Vha1B0cih0aGlzKTsKKyAgICBtX2ludmVyc2UtPm1fcGFyZW50SW52
ZXJzZSA9ICp0aGlzOwogCiAgICAgcmV0dXJuICptX2ludmVyc2U7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU2Vzc2lvbi5jcHAKaW5kZXggZjg4OGJhN2IzY2RiMjYz
YmJhOGE3OWRlOWM0MjkzOGNkZDkwYjgzMy4uOTQ5YmU0OWY4ZjNiMGU2MjEzZDQ5NmE0ZjA2NWEx
MTEwMjA5ODdhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJY
UlNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTZXNz
aW9uLmNwcApAQCAtNTUsMTQgKzU1LDE0IEBAIFdlYlhSU2Vzc2lvbjo6V2ViWFJTZXNzaW9uKERv
Y3VtZW50JiBkb2N1bWVudCwgV2ViWFJTeXN0ZW0mIHN5c3RlbSwgWFJTZXNzaW9uTW9kCiAgICAg
LCBtX2lucHV0U291cmNlcyhXZWJYUklucHV0U291cmNlQXJyYXk6OmNyZWF0ZSgqdGhpcykpCiAg
ICAgLCBtX3hyU3lzdGVtKHN5c3RlbSkKICAgICAsIG1fbW9kZShtb2RlKQotICAgICwgbV9kZXZp
Y2UobWFrZVdlYWtQdHIoZGV2aWNlKSkKKyAgICAsIG1fZGV2aWNlKGRldmljZSkKICAgICAsIG1f
cmVxdWVzdGVkRmVhdHVyZXMoV1RGTW92ZShyZXF1ZXN0ZWRGZWF0dXJlcykpCiAgICAgLCBtX2Fj
dGl2ZVJlbmRlclN0YXRlKFdlYlhSUmVuZGVyU3RhdGU6OmNyZWF0ZShtb2RlKSkKICAgICAsIG1f
dmlld2VyUmVmZXJlbmNlU3BhY2UobWFrZVVuaXF1ZTxXZWJYUlZpZXdlclNwYWNlPihkb2N1bWVu
dCwgKnRoaXMpKQogICAgICwgbV90aW1lT3JpZ2luKE1vbm90b25pY1RpbWU6Om5vdygpKQogICAg
ICwgbV92aWV3cyhkZXZpY2Uudmlld3MobW9kZSkpCiB7Ci0gICAgbV9kZXZpY2UtPnNldFRyYWNr
aW5nQW5kUmVuZGVyaW5nQ2xpZW50KG1ha2VXZWFrUHRyKCp0aGlzKSk7CisgICAgbV9kZXZpY2Ut
PnNldFRyYWNraW5nQW5kUmVuZGVyaW5nQ2xpZW50KCp0aGlzKTsKICAgICBtX2RldmljZS0+aW5p
dGlhbGl6ZVRyYWNraW5nQW5kUmVuZGVyaW5nKG1vZGUpOwogCiAgICAgLy8gaHR0cHM6Ly9pbW1l
cnNpdmUtd2ViLmdpdGh1Yi5pby93ZWJ4ci8jcmVmLWZvci1kb20teHJyZWZlcmVuY2VzcGFjZXR5
cGUtdmlld2VyJUUyJTkxJUEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1dlYlhSU3BhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlNw
YWNlLmNwcAppbmRleCA2YTBiZjMxZDk3NmI2MWY0MDcwMzliYzkyNGU4MTNmMjNmNmY4MTUzLi4w
NjVlN2Q5ZjMzMWUxOTAxMzA1MDlmZjgxMTczYWNjNzBmMGExMTNhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3BhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvV2ViWFJTcGFjZS5jcHAKQEAgLTcwLDcgKzcwLDcgQEAgV1RGX01B
S0VfSVNPX0FMTE9DQVRFRF9JTVBMKFdlYlhSVmlld2VyU3BhY2UpOwogCiBXZWJYUlZpZXdlclNw
YWNlOjpXZWJYUlZpZXdlclNwYWNlKERvY3VtZW50JiBkb2N1bWVudCwgV2ViWFJTZXNzaW9uJiBz
ZXNzaW9uKQogICAgIDogV2ViWFJTcGFjZShkb2N1bWVudCwgV2ViWFJSaWdpZFRyYW5zZm9ybTo6
Y3JlYXRlKCkpCi0gICAgLCBtX3Nlc3Npb24obWFrZVdlYWtQdHIoJnNlc3Npb24pKQorICAgICwg
bV9zZXNzaW9uKHNlc3Npb24pCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9XZWJYUlN5c3RlbS5jcHAKaW5kZXggZTQ2ZDg3MzE1ODJlOTE1Mzk5Y2FhNmM4ODEwZWM4YzNj
MmQ2NzUwMC4uNjc1OTMyZDM5MzRiMjM3YWRiNDFmNThiMTg3MThjY2YzMzk2OWI5YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5jcHAKQEAgLTYxLDEwICs2
MSwxMCBAQCBSZWY8V2ViWFJTeXN0ZW0+IFdlYlhSU3lzdGVtOjpjcmVhdGUoTmF2aWdhdG9yJiBu
YXZpZ2F0b3IpCiAKIFdlYlhSU3lzdGVtOjpXZWJYUlN5c3RlbShOYXZpZ2F0b3ImIG5hdmlnYXRv
cikKICAgICA6IEFjdGl2ZURPTU9iamVjdChuYXZpZ2F0b3Iuc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKQotICAgICwgbV9uYXZpZ2F0b3IobWFrZVdlYWtQdHIobmF2aWdhdG9yKSkKKyAgICAsIG1f
bmF2aWdhdG9yKG5hdmlnYXRvcikKICAgICAsIG1fZGVmYXVsdElubGluZURldmljZSgqbmF2aWdh
dG9yLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKIHsKLSAgICBtX2lubGluZVhSRGV2aWNlID0g
bWFrZVdlYWtQdHIobV9kZWZhdWx0SW5saW5lRGV2aWNlKTsKKyAgICBtX2lubGluZVhSRGV2aWNl
ID0gbV9kZWZhdWx0SW5saW5lRGV2aWNlOwogICAgIHN1c3BlbmRJZk5lZWRlZCgpOwogfQogCkBA
IC0xMTEsNyArMTExLDcgQEAgdm9pZCBXZWJYUlN5c3RlbTo6ZW5zdXJlSW1tZXJzaXZlWFJEZXZp
Y2VJc1NlbGVjdGVkKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJgogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAgICAgICAgIGlmIChpbW1lcnNpdmVYUkRldmljZXMuc2l6ZSgpID09
IDEpIHsKLSAgICAgICAgICAgIG1fYWN0aXZlSW1tZXJzaXZlRGV2aWNlID0gbWFrZVdlYWtQdHIo
aW1tZXJzaXZlWFJEZXZpY2VzLmZpcnN0KCkuZ2V0KCkpOworICAgICAgICAgICAgbV9hY3RpdmVJ
bW1lcnNpdmVEZXZpY2UgPSBpbW1lcnNpdmVYUkRldmljZXMuZmlyc3QoKS5nZXQoKTsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC0xMTksNyArMTE5LDcgQEAgdm9pZCBXZWJY
UlN5c3RlbTo6ZW5zdXJlSW1tZXJzaXZlWFJEZXZpY2VJc1NlbGVjdGVkKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJgogICAgICAgICAgICAgQVNTRVJUKG1fYWN0aXZlSW1tZXJzaXZlRGV2aWNl
LmdldCgpID09IG9sZERldmljZSk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgLy8gRklY
TUU6IGltcGxlbWVudCBhIGJldHRlciBVQSBzZWxlY3Rpb24gbWVjaGFuaXNtIGlmIHJlcXVpcmVk
LgotICAgICAgICAgICAgbV9hY3RpdmVJbW1lcnNpdmVEZXZpY2UgPSBtYWtlV2Vha1B0cihpbW1l
cnNpdmVYUkRldmljZXMuZmlyc3QoKS5nZXQoKSk7CisgICAgICAgICAgICBtX2FjdGl2ZUltbWVy
c2l2ZURldmljZSA9IGltbWVyc2l2ZVhSRGV2aWNlcy5maXJzdCgpLmdldCgpOwogICAgICAgICB9
CiAKICAgICAgICAgaWYgKGlzRmlyc3RYUkRldmljZXNFbnVtZXJhdGlvbiB8fCBtX2FjdGl2ZUlt
bWVyc2l2ZURldmljZS5nZXQoKSA9PSBvbGREZXZpY2UpIHsKQEAgLTQ3NSwxMCArNDc1LDEwIEBA
IHZvaWQgV2ViWFJTeXN0ZW06OnJlZ2lzdGVyU2ltdWxhdGVkWFJEZXZpY2VGb3JUZXN0aW5nKFBs
YXRmb3JtWFI6OkRldmljZSYgZGV2aWNlCiAgICAgbV90ZXN0aW5nRGV2aWNlcysrOwogICAgIGlm
IChkZXZpY2Uuc3VwcG9ydHMoWFJTZXNzaW9uTW9kZTo6SW1tZXJzaXZlVnIpIHx8IGRldmljZS5z
dXBwb3J0cyhYUlNlc3Npb25Nb2RlOjpJbW1lcnNpdmVBcikpIHsKICAgICAgICAgbV9pbW1lcnNp
dmVEZXZpY2VzLmFkZChkZXZpY2UpOwotICAgICAgICBtX2FjdGl2ZUltbWVyc2l2ZURldmljZSA9
IG1ha2VXZWFrUHRyKGRldmljZSk7CisgICAgICAgIG1fYWN0aXZlSW1tZXJzaXZlRGV2aWNlID0g
ZGV2aWNlOwogICAgIH0KICAgICBpZiAoZGV2aWNlLnN1cHBvcnRzKFhSU2Vzc2lvbk1vZGU6Oklu
bGluZSkpCi0gICAgICAgIG1faW5saW5lWFJEZXZpY2UgPSBtYWtlV2Vha1B0cihkZXZpY2UpOwor
ICAgICAgICBtX2lubGluZVhSRGV2aWNlID0gZGV2aWNlOwogfQogCiB2b2lkIFdlYlhSU3lzdGVt
Ojp1bnJlZ2lzdGVyU2ltdWxhdGVkWFJEZXZpY2VGb3JUZXN0aW5nKFBsYXRmb3JtWFI6OkRldmlj
ZSYgZGV2aWNlKQpAQCAtNDkzLDcgKzQ5Myw3IEBAIHZvaWQgV2ViWFJTeXN0ZW06OnVucmVnaXN0
ZXJTaW11bGF0ZWRYUkRldmljZUZvclRlc3RpbmcoUGxhdGZvcm1YUjo6RGV2aWNlJiBkZXZpCiAg
ICAgaWYgKG1fYWN0aXZlSW1tZXJzaXZlRGV2aWNlID09ICZkZXZpY2UpCiAgICAgICAgIG1fYWN0
aXZlSW1tZXJzaXZlRGV2aWNlID0gbnVsbHB0cjsKICAgICBpZiAobV9pbmxpbmVYUkRldmljZSA9
PSAmZGV2aWNlKQotICAgICAgICBtX2lubGluZVhSRGV2aWNlID0gbWFrZVdlYWtQdHIobV9kZWZh
dWx0SW5saW5lRGV2aWNlKTsKKyAgICAgICAgbV9pbmxpbmVYUkRldmljZSA9IG1fZGVmYXVsdElu
bGluZURldmljZTsKICAgICBtX3Rlc3RpbmdEZXZpY2VzLS07CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25UaW1lbGluZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9hbmltYXRpb24vQW5pbWF0aW9uVGltZWxpbmUuY3BwCmluZGV4IDdlNWY1OTkwMDg1YzRk
YWRjNzI3OTQyZDAyNTdjMDJjYWRmMWY2ODguLmE4NzBmM2VkZDBjOTIzOTY1ZDAyZDRmYzRiYzQw
NzYyMzRiOTk0MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRp
b25UaW1lbGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvblRp
bWVsaW5lLmNwcApAQCAtNDgsNyArNDgsNyBAQCB2b2lkIEFuaW1hdGlvblRpbWVsaW5lOjphbmlt
YXRpb25UaW1pbmdEaWRDaGFuZ2UoV2ViQW5pbWF0aW9uJiBhbmltYXRpb24pCiAgICAgdXBkYXRl
R2xvYmFsUG9zaXRpb24oYW5pbWF0aW9uKTsKIAogICAgIGlmIChtX2FuaW1hdGlvbnMuYWRkKCZh
bmltYXRpb24pKSB7Ci0gICAgICAgIG1fYWxsQW5pbWF0aW9ucy5hcHBlbmQobWFrZVdlYWtQdHIo
JmFuaW1hdGlvbikpOworICAgICAgICBtX2FsbEFuaW1hdGlvbnMuYXBwZW5kKGFuaW1hdGlvbik7
CiAgICAgICAgIGF1dG8qIHRpbWVsaW5lID0gYW5pbWF0aW9uLnRpbWVsaW5lKCk7CiAgICAgICAg
IGlmICh0aW1lbGluZSAmJiB0aW1lbGluZSAhPSB0aGlzKQogICAgICAgICAgICAgdGltZWxpbmUt
PnJlbW92ZUFuaW1hdGlvbihhbmltYXRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YW5pbWF0aW9uL0RlY2xhcmF0aXZlQW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9EZWNsYXJhdGl2ZUFuaW1hdGlvbi5jcHAKaW5kZXggYjU4MjcyNTIyNzJmZjZlZGNlOGE2
ZWNjNGVkZDVkNDg2OGE5NDliZi4uZjE5NjA4ZTA0YWVjM2IxMTRmY2JmNDYzZTA3ZTMyNmYxMDlh
MWRkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RlY2xhcmF0aXZlQW5p
bWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRGVjbGFyYXRpdmVBbmlt
YXRpb24uY3BwCkBAIC00NSw3ICs0NSw3IEBAIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChE
ZWNsYXJhdGl2ZUFuaW1hdGlvbik7CiAKIERlY2xhcmF0aXZlQW5pbWF0aW9uOjpEZWNsYXJhdGl2
ZUFuaW1hdGlvbihjb25zdCBTdHlsZWFibGUmIHN0eWxlYWJsZSwgY29uc3QgQW5pbWF0aW9uJiBi
YWNraW5nQW5pbWF0aW9uKQogICAgIDogV2ViQW5pbWF0aW9uKHN0eWxlYWJsZS5lbGVtZW50LmRv
Y3VtZW50KCkpCi0gICAgLCBtX293bmluZ0VsZW1lbnQobWFrZVdlYWtQdHIoc3R5bGVhYmxlLmVs
ZW1lbnQpKQorICAgICwgbV9vd25pbmdFbGVtZW50KHN0eWxlYWJsZS5lbGVtZW50KQogICAgICwg
bV9vd25pbmdQc2V1ZG9JZChzdHlsZWFibGUucHNldWRvSWQpCiAgICAgLCBtX2JhY2tpbmdBbmlt
YXRpb24oY29uc3RfY2FzdDxBbmltYXRpb24mPihiYWNraW5nQW5pbWF0aW9uKSkKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmNwcAppbmRleCBhMjRjYjE5
NGM3NDdjZGY3NzMzMjVhNDIxNjI3ZGNjYTA5OWI0ZmUwLi45M2E0ODJkYjZkOTc4NjkxZWI1Njdk
ZDU0YzBiYTJjYWMzM2RjZjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24v
RG9jdW1lbnRUaW1lbGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3Vt
ZW50VGltZWxpbmUuY3BwCkBAIC01OCw3ICs1OCw3IEBAIFJlZjxEb2N1bWVudFRpbWVsaW5lPiBE
b2N1bWVudFRpbWVsaW5lOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBEb2N1bWVudFRpbWVs
CiBEb2N1bWVudFRpbWVsaW5lOjpEb2N1bWVudFRpbWVsaW5lKERvY3VtZW50JiBkb2N1bWVudCwg
U2Vjb25kcyBvcmlnaW5UaW1lKQogICAgIDogQW5pbWF0aW9uVGltZWxpbmUoKQogICAgICwgbV90
aWNrU2NoZWR1bGVUaW1lcigqdGhpcywgJkRvY3VtZW50VGltZWxpbmU6OnNjaGVkdWxlQW5pbWF0
aW9uUmVzb2x1dGlvbikKLSAgICAsIG1fZG9jdW1lbnQobWFrZVdlYWtQdHIoZG9jdW1lbnQpKQor
ICAgICwgbV9kb2N1bWVudChkb2N1bWVudCkKICAgICAsIG1fb3JpZ2luVGltZShvcmlnaW5UaW1l
KQogewogICAgIGlmIChhdXRvKiBjb250cm9sbGVyID0gdGhpcy0+Y29udHJvbGxlcigpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0U3RhY2suY3Bw
IGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0U3RhY2suY3BwCmluZGV4
IGNlZjNiMTY3Nzk1YTdlM2Q0MDI1OGE5YWNkZWJlODQxMjZlZmM0OTIuLjU2MGVmY2ZmNWVlNDE1
Yzg5YWRiZjQxOGJiYjIxNWYwZGYxZmMyNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fu
aW1hdGlvbi9LZXlmcmFtZUVmZmVjdFN0YWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmlt
YXRpb24vS2V5ZnJhbWVFZmZlY3RTdGFjay5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgYm9vbCBLZXlm
cmFtZUVmZmVjdFN0YWNrOjphZGRFZmZlY3QoS2V5ZnJhbWVFZmZlY3QmIGVmZmVjdCkKICAgICBp
ZiAoIWVmZmVjdC50YXJnZXRTdHlsZWFibGUoKSB8fCAhZWZmZWN0LmFuaW1hdGlvbigpIHx8ICFl
ZmZlY3QuYW5pbWF0aW9uKCktPnRpbWVsaW5lKCkgfHwgIWVmZmVjdC5hbmltYXRpb24oKS0+aXNS
ZWxldmFudCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBtX2VmZmVjdHMuYXBwZW5k
KG1ha2VXZWFrUHRyKCZlZmZlY3QpKTsKKyAgICBtX2VmZmVjdHMuYXBwZW5kKGVmZmVjdCk7CiAg
ICAgbV9pc1NvcnRlZCA9IGZhbHNlOwogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5lci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmNwcAppbmRleCA5ODdj
YmE0YzMxYjcwZTU4YjQxZTNhNjZhY2NmMGJhMmE2Zjc1ODhlLi5iNDg1ZTE2ZTVkOTNlYTFhOWNi
ODYxNTYwNTg0NGNlNmNiYWU4NzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmNwcApAQCAtMjA0LDE0ICsyMDQsMTQgQEAgUmVmUHRy
PEpTTGF6eUV2ZW50TGlzdGVuZXI+IEpTTGF6eUV2ZW50TGlzdGVuZXI6OmNyZWF0ZShDcmVhdGlv
bkFyZ3VtZW50cyYmIGFyZ3UKIAogUmVmUHRyPEpTTGF6eUV2ZW50TGlzdGVuZXI+IEpTTGF6eUV2
ZW50TGlzdGVuZXI6OmNyZWF0ZShFbGVtZW50JiBlbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyaWJ1dGVOYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBhdHRyaWJ1dGVWYWx1ZSkKIHsKLSAg
ICByZXR1cm4gY3JlYXRlKHsgYXR0cmlidXRlTmFtZSwgYXR0cmlidXRlVmFsdWUsIGVsZW1lbnQu
ZG9jdW1lbnQoKSwgbWFrZVdlYWtQdHIoZWxlbWVudCksIG51bGxwdHIsIGVsZW1lbnQuaXNTVkdF
bGVtZW50KCkgfSk7CisgICAgcmV0dXJuIGNyZWF0ZSh7IGF0dHJpYnV0ZU5hbWUsIGF0dHJpYnV0
ZVZhbHVlLCBlbGVtZW50LmRvY3VtZW50KCksIGVsZW1lbnQsIG51bGxwdHIsIGVsZW1lbnQuaXNT
VkdFbGVtZW50KCkgfSk7CiB9CiAKIFJlZlB0cjxKU0xhenlFdmVudExpc3RlbmVyPiBKU0xhenlF
dmVudExpc3RlbmVyOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBRdWFsaWZpZWRO
YW1lJiBhdHRyaWJ1dGVOYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBhdHRyaWJ1dGVWYWx1ZSkKIHsK
ICAgICAvLyBGSVhNRTogVGhpcyBhbHdheXMgcGFzc2VzIGZhbHNlIGZvciAic2hvdWxkVXNlU1ZH
RXZlbnROYW1lIi4gSXMgdGhhdCBjb3JyZWN0IGZvciBldmVudHMgZGlzcGF0Y2hlZCB0byBTVkcg
ZG9jdW1lbnRzPwogICAgIC8vIFRoaXMgaGFzIGJlZW4gdGhpcyB3YXkgZm9yIGEgbG9uZyB0aW1l
LCBidXQgYmVjYW1lIG1vcmUgb2J2aW91cyB3aGVuIHJlZmFjdG9yaW5nIHRvIHNlcGFyYXRlIHRo
ZSBFbGVtZW50IGFuZCBEb2N1bWVudCBjb2RlIHBhdGhzLgotICAgIHJldHVybiBjcmVhdGUoeyBh
dHRyaWJ1dGVOYW1lLCBhdHRyaWJ1dGVWYWx1ZSwgZG9jdW1lbnQsIG1ha2VXZWFrUHRyKGRvY3Vt
ZW50KSwgbnVsbHB0ciwgZmFsc2UgfSk7CisgICAgcmV0dXJuIGNyZWF0ZSh7IGF0dHJpYnV0ZU5h
bWUsIGF0dHJpYnV0ZVZhbHVlLCBkb2N1bWVudCwgZG9jdW1lbnQsIG51bGxwdHIsIGZhbHNlIH0p
OwogfQogCiBSZWZQdHI8SlNMYXp5RXZlbnRMaXN0ZW5lcj4gSlNMYXp5RXZlbnRMaXN0ZW5lcjo6
Y3JlYXRlKERPTVdpbmRvdyYgd2luZG93LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVO
YW1lLCBjb25zdCBBdG9tU3RyaW5nJiBhdHRyaWJ1dGVWYWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhY2hlZEZyYW1lRGF0YS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWNoZWRGcmFtZURhdGEuY3BwCmluZGV4IGQwOGFl
OTY2MjQwODlkZDNkYTI5NmQxZmQ2YzMxMjg1NGYzNGRlNzQuLjg5ZjE1ZTIxY2FmZGRiYTRiOTE1
MDE0M2EwODljOWI2ZjMwZDk3Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NjcmlwdENhY2hlZEZyYW1lRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmNwcApAQCAtOTEsNyArOTEsNyBAQCB2b2lkIFNj
cmlwdENhY2hlZEZyYW1lRGF0YTo6cmVzdG9yZShGcmFtZSYgZnJhbWUpCiAgICAgICAgIH0KIAog
ICAgICAgICBpZiAocGFnZSkKLSAgICAgICAgICAgIHdpbmRvd1Byb3h5LT53aW5kb3coKS0+c2V0
Q29uc29sZUNsaWVudChtYWtlV2Vha1B0cihwYWdlLT5jb25zb2xlKCkpKTsKKyAgICAgICAgICAg
IHdpbmRvd1Byb3h5LT53aW5kb3coKS0+c2V0Q29uc29sZUNsaWVudChwYWdlLT5jb25zb2xlKCkp
OwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Ny
aXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250
cm9sbGVyLmNwcAppbmRleCA2Njg0ODZmZDg3ZmNmZTQ0ZTI4YzFjNWQxYTc2ODJjYjliYWU3MjM2
Li5lY2RmZjAxNjI5YzBjNWEyYmMzMTBlMmNkMzU2MDk2YjUyZDMwZWNjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMjc2LDcgKzI3
Niw3IEBAIHZvaWQgU2NyaXB0Q29udHJvbGxlcjo6aW5pdFNjcmlwdEZvcldpbmRvd1Byb3h5KEpT
V2luZG93UHJveHkmIHdpbmRvd1Byb3h5KQogICAgIGlmIChQYWdlKiBwYWdlID0gbV9mcmFtZS5w
YWdlKCkpIHsKICAgICAgICAgd2luZG93UHJveHkuYXR0YWNoRGVidWdnZXIocGFnZS0+ZGVidWdn
ZXIoKSk7CiAgICAgICAgIHdpbmRvd1Byb3h5LndpbmRvdygpLT5zZXRQcm9maWxlR3JvdXAocGFn
ZS0+Z3JvdXAoKS5pZGVudGlmaWVyKCkpOwotICAgICAgICB3aW5kb3dQcm94eS53aW5kb3coKS0+
c2V0Q29uc29sZUNsaWVudChtYWtlV2Vha1B0cihwYWdlLT5jb25zb2xlKCkpKTsKKyAgICAgICAg
d2luZG93UHJveHkud2luZG93KCktPnNldENvbnNvbGVDbGllbnQocGFnZS0+Y29uc29sZSgpKTsK
ICAgICB9CiAKICAgICBtX2ZyYW1lLmxvYWRlcigpLmRpc3BhdGNoRGlkQ2xlYXJXaW5kb3dPYmpl
Y3RJbldvcmxkKHdvcmxkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1dpbmRvd1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dpbmRvd1Byb3h5
LmNwcAppbmRleCA1YzFkZjNmYjhkNDQ4YmJiMGM2YTFjYTAzYzZiZjM5N2I4YmM2NmMxLi5lZTY1
OGMwM2I1OTdiMDI1ZjZlZDhiMjcxMWEwOGI4ZTliMjY1YzM4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9XaW5kb3dQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvV2luZG93UHJveHkuY3BwCkBAIC01Myw3ICs1Myw3IEBAIHN0YXRpYyB2b2lk
IGNvbGxlY3RHYXJiYWdlQWZ0ZXJXaW5kb3dQcm94eURlc3RydWN0aW9uKCkKIH0KIAogV2luZG93
UHJveHk6OldpbmRvd1Byb3h5KEFic3RyYWN0RnJhbWUmIGZyYW1lKQotICAgIDogbV9mcmFtZSht
YWtlV2Vha1B0cihmcmFtZSkpCisgICAgOiBtX2ZyYW1lKGZyYW1lKQogICAgICwgbV9qc1dpbmRv
d1Byb3hpZXMobWFrZVVuaXF1ZVJlZjxQcm94eU1hcD4oKSkKIHsKIH0KQEAgLTE4OCw3ICsxODgs
NyBAQCB2b2lkIFdpbmRvd1Byb3h5OjpzZXRET01XaW5kb3coQWJzdHJhY3RET01XaW5kb3cqIG5l
d0RPTVdpbmRvdykKICAgICAgICAgd2luZG93UHJveHktPmF0dGFjaERlYnVnZ2VyKHBhZ2UgPyBw
YWdlLT5kZWJ1Z2dlcigpIDogbnVsbHB0cik7CiAgICAgICAgIGlmIChwYWdlKQogICAgICAgICAg
ICAgd2luZG93UHJveHktPndpbmRvdygpLT5zZXRQcm9maWxlR3JvdXAocGFnZS0+Z3JvdXAoKS5p
ZGVudGlmaWVyKCkpOwotICAgICAgICB3aW5kb3dQcm94eS0+d2luZG93KCktPnNldENvbnNvbGVD
bGllbnQocGFnZSA/IG1ha2VXZWFrUHRyKHBhZ2UtPmNvbnNvbGUoKSkgOiBudWxscHRyKTsKKyAg
ICAgICAgd2luZG93UHJveHktPndpbmRvdygpLT5zZXRDb25zb2xlQ2xpZW50KHBhZ2UtPmNvbnNv
bGUoKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3Vi
dGxlQ3J5cHRvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uY3BwCmlu
ZGV4IGVkNGU4OTE4MmIxMDFjMWFiNjI1OWU5YTdiNmMxOTZiZTFiNDVlNjYuLjJmZDJmMGZkNzdi
MjE3Mzc2YWU2YTBhNWFiODFlZjBlYjNmNDFhMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9TdWJ0bGVDcnlwdG8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0
bGVDcnlwdG8uY3BwCkBAIC01MDMsMTAgKzUwMywxMCBAQCBzdGF0aWMgYm9vbCBpc1N1cHBvcnRl
ZEV4cG9ydEtleShDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGlkZW50aWZpZXIpCiAgICAgfQog
fQogCi1SZWZQdHI8RGVmZXJyZWRQcm9taXNlPiBnZXRQcm9taXNlKERlZmVycmVkUHJvbWlzZSog
aW5kZXgsIFdlYWtQdHI8U3VidGxlQ3J5cHRvPiBzdWJ0bGVDcnlwdG9XZWFrUG9pbnRlcikKK1Jl
ZlB0cjxEZWZlcnJlZFByb21pc2U+IGdldFByb21pc2UoRGVmZXJyZWRQcm9taXNlKiBpbmRleCwg
V2Vha1B0cjxTdWJ0bGVDcnlwdG8+IHdlYWtUaGlzKQogewotICAgIGlmIChzdWJ0bGVDcnlwdG9X
ZWFrUG9pbnRlcikKLSAgICAgICAgcmV0dXJuIHN1YnRsZUNyeXB0b1dlYWtQb2ludGVyLT5tX3Bl
bmRpbmdQcm9taXNlcy50YWtlKGluZGV4KTsKKyAgICBpZiAod2Vha1RoaXMpCisgICAgICAgIHJl
dHVybiB3ZWFrVGhpcy0+bV9wZW5kaW5nUHJvbWlzZXMudGFrZShpbmRleCk7CiAgICAgcmV0dXJu
IG51bGxwdHI7CiB9CiAKQEAgLTU2NSwxMyArNTY1LDEzIEBAIHZvaWQgU3VidGxlQ3J5cHRvOjpl
bmNyeXB0KEpTQzo6SlNHbG9iYWxPYmplY3QmIHN0YXRlLCBBbGdvcml0aG1JZGVudGlmaWVyJiYg
YWxnCiAKICAgICBhdXRvIGluZGV4ID0gcHJvbWlzZS5wdHIoKTsKICAgICBtX3BlbmRpbmdQcm9t
aXNlcy5hZGQoaW5kZXgsIFdURk1vdmUocHJvbWlzZSkpOwotICAgIGF1dG8gc3VidGxlQ3J5cHRv
V2Vha1BvaW50ZXIgPSBtYWtlV2Vha1B0cigqdGhpcyk7Ci0gICAgYXV0byBjYWxsYmFjayA9IFtp
bmRleCwgc3VidGxlQ3J5cHRvV2Vha1BvaW50ZXJdKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgY2lw
aGVyVGV4dCkgbXV0YWJsZSB7Ci0gICAgICAgIGlmIChhdXRvIHByb21pc2UgPSBnZXRQcm9taXNl
KGluZGV4LCBzdWJ0bGVDcnlwdG9XZWFrUG9pbnRlcikpCisgICAgV2Vha1B0ciB3ZWFrVGhpcyB7
ICp0aGlzIH07CisgICAgYXV0byBjYWxsYmFjayA9IFtpbmRleCwgd2Vha1RoaXNdKGNvbnN0IFZl
Y3Rvcjx1aW50OF90PiYgY2lwaGVyVGV4dCkgbXV0YWJsZSB7CisgICAgICAgIGlmIChhdXRvIHBy
b21pc2UgPSBnZXRQcm9taXNlKGluZGV4LCB3ZWFrVGhpcykpCiAgICAgICAgICAgICBmdWxmaWxs
UHJvbWlzZVdpdGhBcnJheUJ1ZmZlcihwcm9taXNlLnJlbGVhc2VOb25OdWxsKCksIGNpcGhlclRl
eHQuZGF0YSgpLCBjaXBoZXJUZXh0LnNpemUoKSk7CiAgICAgfTsKLSAgICBhdXRvIGV4Y2VwdGlv
bkNhbGxiYWNrID0gW2luZGV4LCBzdWJ0bGVDcnlwdG9XZWFrUG9pbnRlcl0oRXhjZXB0aW9uQ29k
ZSBlYykgbXV0YWJsZSB7Ci0gICAgICAgIGlmIChhdXRvIHByb21pc2UgPSBnZXRQcm9taXNlKGlu
ZGV4LCBzdWJ0bGVDcnlwdG9XZWFrUG9pbnRlcikpCisgICAgYXV0byBleGNlcHRpb25DYWxsYmFj
ayA9IFtpbmRleCwgd2Vha1RoaXNdKEV4Y2VwdGlvbkNvZGUgZWMpIG11dGFibGUgeworICAgICAg
ICBpZiAoYXV0byBwcm9taXNlID0gZ2V0UHJvbWlzZShpbmRleCwgd2Vha1RoaXMpKQogICAgICAg
ICAgICAgcmVqZWN0V2l0aEV4Y2VwdGlvbihwcm9taXNlLnJlbGVhc2VOb25OdWxsKCksIGVjKTsK
ICAgICB9OwogCkBAIC02MDUsMTMgKzYwNSwxMyBAQCB2b2lkIFN1YnRsZUNyeXB0bzo6ZGVjcnlw
dChKU0M6OkpTR2xvYmFsT2JqZWN0JiBzdGF0ZSwgQWxnb3JpdGhtSWRlbnRpZmllciYmIGFsZwog
CiAgICAgYXV0byBpbmRleCA9IHByb21pc2UucHRyKCk7CiAgICAgbV9wZW5kaW5nUHJvbWlzZXMu
YWRkKGluZGV4LCBXVEZNb3ZlKHByb21pc2UpKTsKLSAgICBhdXRvIHN1YnRsZUNyeXB0b1dlYWtQ
b2ludGVyID0gbWFrZVdlYWtQdHIoKnRoaXMpOwotICAgIGF1dG8gY2FsbGJhY2sgPSBbaW5kZXgs
IHN1YnRsZUNyeXB0b1dlYWtQb2ludGVyXShjb25zdCBWZWN0b3I8dWludDhfdD4mIHBsYWluVGV4
dCkgbXV0YWJsZSB7Ci0gICAgICAgIGlmIChhdXRvIHByb21pc2UgPSBnZXRQcm9taXNlKGluZGV4
LCBzdWJ0bGVDcnlwdG9XZWFrUG9pbnRlcikpCisgICAgV2Vha1B0ciB3ZWFrVGhpcyB7ICp0aGlz
IH07CisgICAgYXV0byBjYWxsYmFjayA9IFtpbmRleCwgd2Vha1RoaXNdKGNvbnN0IFZlY3Rvcjx1
aW50OF90PiYgcGxhaW5UZXh0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKGF1dG8gcHJvbWlzZSA9
IGdldFByb21pc2UoaW5kZXgsIHdlYWtUaGlzKSkKICAgICAgICAgICAgIGZ1bGZpbGxQcm9taXNl
V2l0aEFycmF5QnVmZmVyKHByb21pc2UucmVsZWFzZU5vbk51bGwoKSwgcGxhaW5UZXh0LmRhdGEo
KSwgcGxhaW5UZXh0LnNpemUoKSk7CiAgICAgfTsKLSAgICBhdXRvIGV4Y2VwdGlvbkNhbGxiYWNr
ID0gW2luZGV4LCBzdWJ0bGVDcnlwdG9XZWFrUG9pbnRlcl0oRXhjZXB0aW9uQ29kZSBlYykgbXV0
YWJsZSB7Ci0gICAgICAgIGlmIChhdXRvIHByb21pc2UgPSBnZXRQcm9taXNlKGluZGV4LCBzdWJ0
bGVDcnlwdG9XZWFrUG9pbnRlcikpCisgICAgYXV0byBleGNlcHRpb25DYWxsYmFjayA9IFtpbmRl
eCwgd2Vha1RoaXNdKEV4Y2VwdGlvbkNvZGUgZWMpIG11dGFibGUgeworICAgICAgICBpZiAoYXV0
byBwcm9taXNlID0gZ2V0UHJvbWlzZShpbmRleCwgd2Vha1RoaXMpKQogICAgICAgICAgICAgcmVq
ZWN0V2l0aEV4Y2VwdGlvbihwcm9taXNlLnJlbGVhc2VOb25OdWxsKCksIGVjKTsKICAgICB9Owog
CkBAIC02NDMsMTMgKzY0MywxMyBAQCB2b2lkIFN1YnRsZUNyeXB0bzo6c2lnbihKU0M6OkpTR2xv
YmFsT2JqZWN0JiBzdGF0ZSwgQWxnb3JpdGhtSWRlbnRpZmllciYmIGFsZ29yaQogCiAgICAgYXV0
byBpbmRleCA9IHByb21pc2UucHRyKCk7CiAgICAgbV9wZW5kaW5nUHJvbWlzZXMuYWRkKGluZGV4
LCBXVEZNb3ZlKHByb21pc2UpKTsKLSAgICBhdXRvIHN1YnRsZUNyeXB0b1dlYWtQb2ludGVyID0g
bWFrZVdlYWtQdHIoKnRoaXMpOwotICAgIGF1dG8gY2FsbGJhY2sgPSBbaW5kZXgsIHN1YnRsZUNy
eXB0b1dlYWtQb2ludGVyXShjb25zdCBWZWN0b3I8dWludDhfdD4mIHNpZ25hdHVyZSkgbXV0YWJs
ZSB7Ci0gICAgICAgIGlmIChhdXRvIHByb21pc2UgPSBnZXRQcm9taXNlKGluZGV4LCBzdWJ0bGVD
cnlwdG9XZWFrUG9pbnRlcikpCisgICAgV2Vha1B0ciB3ZWFrVGhpcyB7ICp0aGlzIH07CisgICAg
YXV0byBjYWxsYmFjayA9IFtpbmRleCwgd2Vha1RoaXNdKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYg
c2lnbmF0dXJlKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKGF1dG8gcHJvbWlzZSA9IGdldFByb21p
c2UoaW5kZXgsIHdlYWtUaGlzKSkKICAgICAgICAgICAgIGZ1bGZpbGxQcm9taXNlV2l0aEFycmF5
QnVmZmVyKHByb21pc2UucmVsZWFzZU5vbk51bGwoKSwgc2lnbmF0dXJlLmRhdGEoKSwgc2lnbmF0
dXJlLnNpemUoKSk7CiAgICAgfTsKLSAgICBhdXRvIGV4Y2VwdGlvbkNhbGxiYWNrID0gW2luZGV4
LCBzdWJ0bGVDcnlwdG9XZWFrUG9pbnRlcl0oRXhjZXB0aW9uQ29kZSBlYykgbXV0YWJsZSB7Ci0g
ICAgICAgIGlmIChhdXRvIHByb21pc2UgPSBnZXRQcm9taXNlKGluZGV4LCBzdWJ0bGVDcnlwdG9X
ZWFrUG9pbnRlcikpCisgICAgYXV0byBleGNlcHRpb25DYWxsYmFjayA9IFtpbmRleCwgd2Vha1Ro
aXNdKEV4Y2VwdGlvbkNvZGUgZWMpIG11dGFibGUgeworICAgICAgICBpZiAoYXV0byBwcm9taXNl
ID0gZ2V0UHJvbWlzZShpbmRleCwgd2Vha1RoaXMpKQogICAgICAgICAgICAgcmVqZWN0V2l0aEV4
Y2VwdGlvbihwcm9taXNlLnJlbGVhc2VOb25OdWxsKCksIGVjKTsKICAgICB9OwogCkBAIC02ODIs
MTMgKzY4MiwxMyBAQCB2b2lkIFN1YnRsZUNyeXB0bzo6dmVyaWZ5KEpTQzo6SlNHbG9iYWxPYmpl
Y3QmIHN0YXRlLCBBbGdvcml0aG1JZGVudGlmaWVyJiYgYWxnbwogCiAgICAgYXV0byBpbmRleCA9
IHByb21pc2UucHRyKCk7CiAgICAgbV9wZW5kaW5nUHJvbWlzZXMuYWRkKGluZGV4LCBXVEZNb3Zl
KHByb21pc2UpKTsKLSAgICBhdXRvIHN1YnRsZUNyeXB0b1dlYWtQb2ludGVyID0gbWFrZVdlYWtQ
dHIoKnRoaXMpOwotICAgIGF1dG8gY2FsbGJhY2sgPSBbaW5kZXgsIHN1YnRsZUNyeXB0b1dlYWtQ
b2ludGVyXShib29sIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIGlmIChhdXRvIHByb21pc2Ug
PSBnZXRQcm9taXNlKGluZGV4LCBzdWJ0bGVDcnlwdG9XZWFrUG9pbnRlcikpCisgICAgV2Vha1B0
ciB3ZWFrVGhpcyB7ICp0aGlzIH07CisgICAgYXV0byBjYWxsYmFjayA9IFtpbmRleCwgd2Vha1Ro
aXNdKGJvb2wgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKGF1dG8gcHJvbWlzZSA9IGdl
dFByb21pc2UoaW5kZXgsIHdlYWtUaGlzKSkKICAgICAgICAgICAgIHByb21pc2UtPnJlc29sdmU8
SURMQm9vbGVhbj4ocmVzdWx0KTsKICAgICB9OwotICAgIGF1dG8gZXhjZXB0aW9uQ2FsbGJhY2sg
PSBbaW5kZXgsIHN1YnRsZUNyeXB0b1dlYWtQb2ludGVyXShFeGNlcHRpb25Db2RlIGVjKSBtdXRh
YmxlIHsKLSAgICAgICAgaWYgKGF1dG8gcHJvbWlzZSA9IGdldFByb21pc2UoaW5kZXgsIHN1YnRs
ZUNyeXB0b1dlYWtQb2ludGVyKSkKKyAgICBhdXRvIGV4Y2VwdGlvbkNhbGxiYWNrID0gW2luZGV4
LCB3ZWFrVGhpc10oRXhjZXB0aW9uQ29kZSBlYykgbXV0YWJsZSB7CisgICAgICAgIGlmIChhdXRv
IHByb21pc2UgPSBnZXRQcm9taXNlKGluZGV4LCB3ZWFrVGhpcykpCiAgICAgICAgICAgICByZWpl
Y3RXaXRoRXhjZXB0aW9uKHByb21pc2UucmVsZWFzZU5vbk51bGwoKSwgZWMpOwogICAgIH07CiAK
QEAgLTcxMCwxMyArNzEwLDEzIEBAIHZvaWQgU3VidGxlQ3J5cHRvOjpkaWdlc3QoSlNDOjpKU0ds
b2JhbE9iamVjdCYgc3RhdGUsIEFsZ29yaXRobUlkZW50aWZpZXImJiBhbGdvCiAKICAgICBhdXRv
IGluZGV4ID0gcHJvbWlzZS5wdHIoKTsKICAgICBtX3BlbmRpbmdQcm9taXNlcy5hZGQoaW5kZXgs
IFdURk1vdmUocHJvbWlzZSkpOwotICAgIGF1dG8gc3VidGxlQ3J5cHRvV2Vha1BvaW50ZXIgPSBt
YWtlV2Vha1B0cigqdGhpcyk7Ci0gICAgYXV0byBjYWxsYmFjayA9IFtpbmRleCwgc3VidGxlQ3J5
cHRvV2Vha1BvaW50ZXJdKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgZGlnZXN0KSBtdXRhYmxlIHsK
LSAgICAgICAgaWYgKGF1dG8gcHJvbWlzZSA9IGdldFByb21pc2UoaW5kZXgsIHN1YnRsZUNyeXB0
b1dlYWtQb2ludGVyKSkKKyAgICBXZWFrUHRyIHdlYWtUaGlzIHsgKnRoaXMgfTsKKyAgICBhdXRv
IGNhbGxiYWNrID0gW2luZGV4LCB3ZWFrVGhpc10oY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBkaWdl
c3QpIG11dGFibGUgeworICAgICAgICBpZiAoYXV0byBwcm9taXNlID0gZ2V0UHJvbWlzZShpbmRl
eCwgd2Vha1RoaXMpKQogICAgICAgICAgICAgZnVsZmlsbFByb21pc2VXaXRoQXJyYXlCdWZmZXIo
cHJvbWlzZS5yZWxlYXNlTm9uTnVsbCgpLCBkaWdlc3QuZGF0YSgpLCBkaWdlc3Quc2l6ZSgpKTsK
ICAgICB9OwotICAgIGF1dG8gZXhjZXB0aW9uQ2FsbGJhY2sgPSBbaW5kZXgsIHN1YnRsZUNyeXB0
b1dlYWtQb2ludGVyXShFeGNlcHRpb25Db2RlIGVjKSBtdXRhYmxlIHsKLSAgICAgICAgaWYgKGF1
dG8gcHJvbWlzZSA9IGdldFByb21pc2UoaW5kZXgsIHN1YnRsZUNyeXB0b1dlYWtQb2ludGVyKSkK
KyAgICBhdXRvIGV4Y2VwdGlvbkNhbGxiYWNrID0gW2luZGV4LCB3ZWFrVGhpc10oRXhjZXB0aW9u
Q29kZSBlYykgbXV0YWJsZSB7CisgICAgICAgIGlmIChhdXRvIHByb21pc2UgPSBnZXRQcm9taXNl
KGluZGV4LCB3ZWFrVGhpcykpCiAgICAgICAgICAgICByZWplY3RXaXRoRXhjZXB0aW9uKHByb21p
c2UucmVsZWFzZU5vbk51bGwoKSwgZWMpOwogICAgIH07CiAKQEAgLTczOCw5ICs3MzgsOSBAQCB2
b2lkIFN1YnRsZUNyeXB0bzo6Z2VuZXJhdGVLZXkoSlNDOjpKU0dsb2JhbE9iamVjdCYgc3RhdGUs
IEFsZ29yaXRobUlkZW50aWZpZXImJgogCiAgICAgYXV0byBpbmRleCA9IHByb21pc2UucHRyKCk7
CiAgICAgbV9wZW5kaW5nUHJvbWlzZXMuYWRkKGluZGV4LCBXVEZNb3ZlKHByb21pc2UpKTsKLSAg
ICBhdXRvIHN1YnRsZUNyeXB0b1dlYWtQb2ludGVyID0gbWFrZVdlYWtQdHIoKnRoaXMpOwotICAg
IGF1dG8gY2FsbGJhY2sgPSBbaW5kZXgsIHN1YnRsZUNyeXB0b1dlYWtQb2ludGVyXShLZXlPcktl
eVBhaXImJiBrZXlPcktleVBhaXIpIG11dGFibGUgewotICAgICAgICBpZiAoYXV0byBwcm9taXNl
ID0gZ2V0UHJvbWlzZShpbmRleCwgc3VidGxlQ3J5cHRvV2Vha1BvaW50ZXIpKSB7CisgICAgV2Vh
a1B0ciB3ZWFrVGhpcyB7ICp0aGlzIH07CisgICAgYXV0byBjYWxsYmFjayA9IFtpbmRleCwgd2Vh
a1RoaXNdKEtleU9yS2V5UGFpciYmIGtleU9yS2V5UGFpcikgbXV0YWJsZSB7CisgICAgICAgIGlm
IChhdXRvIHByb21pc2UgPSBnZXRQcm9taXNlKGluZGV4LCB3ZWFrVGhpcykpIHsKICAgICAgICAg
ICAgIFdURjo6c3dpdGNoT24oa2V5T3JLZXlQYWlyLAogICAgICAgICAgICAgICAgIFsmcHJvbWlz
ZV0gKFJlZlB0cjxDcnlwdG9LZXk+JiBrZXkpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKChr
ZXktPnR5cGUoKSA9PSBDcnlwdG9LZXlUeXBlOjpQcml2YXRlIHx8IGtleS0+dHlwZSgpID09IENy
eXB0b0tleVR5cGU6OlNlY3JldCkgJiYgIWtleS0+dXNhZ2VzQml0bWFwKCkpIHsKQEAgLTc1OSw4
ICs3NTksOCBAQCB2b2lkIFN1YnRsZUNyeXB0bzo6Z2VuZXJhdGVLZXkoSlNDOjpKU0dsb2JhbE9i
amVjdCYgc3RhdGUsIEFsZ29yaXRobUlkZW50aWZpZXImJgogICAgICAgICAgICAgKTsKICAgICAg
ICAgfQogICAgIH07Ci0gICAgYXV0byBleGNlcHRpb25DYWxsYmFjayA9IFtpbmRleCwgc3VidGxl
Q3J5cHRvV2Vha1BvaW50ZXJdKEV4Y2VwdGlvbkNvZGUgZWMpIG11dGFibGUgewotICAgICAgICBp
ZiAoYXV0byBwcm9taXNlID0gZ2V0UHJvbWlzZShpbmRleCwgc3VidGxlQ3J5cHRvV2Vha1BvaW50
ZXIpKQorICAgIGF1dG8gZXhjZXB0aW9uQ2FsbGJhY2sgPSBbaW5kZXgsIHdlYWtUaGlzXShFeGNl
cHRpb25Db2RlIGVjKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKGF1dG8gcHJvbWlzZSA9IGdldFBy
b21pc2UoaW5kZXgsIHdlYWtUaGlzKSkKICAgICAgICAgICAgIHJlamVjdFdpdGhFeGNlcHRpb24o
cHJvbWlzZS5yZWxlYXNlTm9uTnVsbCgpLCBlYyk7CiAgICAgfTsKIApAQCAtODE5LDEyICs4MTks
MTIgQEAgdm9pZCBTdWJ0bGVDcnlwdG86OmRlcml2ZUtleShKU0M6OkpTR2xvYmFsT2JqZWN0JiBz
dGF0ZSwgQWxnb3JpdGhtSWRlbnRpZmllciYmIGEKIAogICAgIGF1dG8gaW5kZXggPSBwcm9taXNl
LnB0cigpOwogICAgIG1fcGVuZGluZ1Byb21pc2VzLmFkZChpbmRleCwgV1RGTW92ZShwcm9taXNl
KSk7Ci0gICAgYXV0byBzdWJ0bGVDcnlwdG9XZWFrUG9pbnRlciA9IG1ha2VXZWFrUHRyKCp0aGlz
KTsKLSAgICBhdXRvIGNhbGxiYWNrID0gW2luZGV4LCBzdWJ0bGVDcnlwdG9XZWFrUG9pbnRlciwg
aW1wb3J0QWxnb3JpdGhtID0gV1RGTW92ZShpbXBvcnRBbGdvcml0aG0pLCBpbXBvcnRQYXJhbXMg
PSBjcm9zc1RocmVhZENvcHlJbXBvcnRQYXJhbXMoKmltcG9ydFBhcmFtcyksIGV4dHJhY3RhYmxl
LCBrZXlVc2FnZXNCaXRtYXBdKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgZGVyaXZlZEtleSkgbXV0
YWJsZSB7CisgICAgV2Vha1B0ciB3ZWFrVGhpcyB7ICp0aGlzIH07CisgICAgYXV0byBjYWxsYmFj
ayA9IFtpbmRleCwgd2Vha1RoaXMsIGltcG9ydEFsZ29yaXRobSA9IFdURk1vdmUoaW1wb3J0QWxn
b3JpdGhtKSwgaW1wb3J0UGFyYW1zID0gY3Jvc3NUaHJlYWRDb3B5SW1wb3J0UGFyYW1zKCppbXBv
cnRQYXJhbXMpLCBleHRyYWN0YWJsZSwga2V5VXNhZ2VzQml0bWFwXShjb25zdCBWZWN0b3I8dWlu
dDhfdD4mIGRlcml2ZWRLZXkpIG11dGFibGUgewogICAgICAgICAvLyBGSVhNRTogaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2OTM5NQogICAgICAgICBLZXlEYXRhIGRh
dGEgPSBkZXJpdmVkS2V5OwotICAgICAgICBhdXRvIGNhbGxiYWNrID0gW2luZGV4LCBzdWJ0bGVD
cnlwdG9XZWFrUG9pbnRlcl0oQ3J5cHRvS2V5JiBrZXkpIG11dGFibGUgewotICAgICAgICAgICAg
aWYgKGF1dG8gcHJvbWlzZSA9IGdldFByb21pc2UoaW5kZXgsIHN1YnRsZUNyeXB0b1dlYWtQb2lu
dGVyKSkgeworICAgICAgICBhdXRvIGNhbGxiYWNrID0gW2luZGV4LCB3ZWFrVGhpc10oQ3J5cHRv
S2V5JiBrZXkpIG11dGFibGUgeworICAgICAgICAgICAgaWYgKGF1dG8gcHJvbWlzZSA9IGdldFBy
b21pc2UoaW5kZXgsIHdlYWtUaGlzKSkgewogICAgICAgICAgICAgICAgIGlmICgoa2V5LnR5cGUo
KSA9PSBDcnlwdG9LZXlUeXBlOjpQcml2YXRlIHx8IGtleS50eXBlKCkgPT0gQ3J5cHRvS2V5VHlw
ZTo6U2VjcmV0KSAmJiAha2V5LnVzYWdlc0JpdG1hcCgpKSB7CiAgICAgICAgICAgICAgICAgICAg
IHJlamVjdFdpdGhFeGNlcHRpb24ocHJvbWlzZS5yZWxlYXNlTm9uTnVsbCgpLCBTeW50YXhFcnJv
cik7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTgzMiwxNSArODMyLDE1IEBAIHZv
aWQgU3VidGxlQ3J5cHRvOjpkZXJpdmVLZXkoSlNDOjpKU0dsb2JhbE9iamVjdCYgc3RhdGUsIEFs
Z29yaXRobUlkZW50aWZpZXImJiBhCiAgICAgICAgICAgICAgICAgcHJvbWlzZS0+cmVzb2x2ZTxJ
RExJbnRlcmZhY2U8Q3J5cHRvS2V5Pj4oa2V5KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfTsK
LSAgICAgICAgYXV0byBleGNlcHRpb25DYWxsYmFjayA9IFtpbmRleCwgc3VidGxlQ3J5cHRvV2Vh
a1BvaW50ZXJdKEV4Y2VwdGlvbkNvZGUgZWMpIG11dGFibGUgewotICAgICAgICAgICAgaWYgKGF1
dG8gcHJvbWlzZSA9IGdldFByb21pc2UoaW5kZXgsIHN1YnRsZUNyeXB0b1dlYWtQb2ludGVyKSkK
KyAgICAgICAgYXV0byBleGNlcHRpb25DYWxsYmFjayA9IFtpbmRleCwgd2Vha1RoaXNdKEV4Y2Vw
dGlvbkNvZGUgZWMpIG11dGFibGUgeworICAgICAgICAgICAgaWYgKGF1dG8gcHJvbWlzZSA9IGdl
dFByb21pc2UoaW5kZXgsIHdlYWtUaGlzKSkKICAgICAgICAgICAgICAgICByZWplY3RXaXRoRXhj
ZXB0aW9uKHByb21pc2UucmVsZWFzZU5vbk51bGwoKSwgZWMpOwogICAgICAgICB9OwogCiAgICAg
ICAgIGltcG9ydEFsZ29yaXRobS0+aW1wb3J0S2V5KFN1YnRsZUNyeXB0bzo6S2V5Rm9ybWF0OjpS
YXcsIFdURk1vdmUoZGF0YSksICppbXBvcnRQYXJhbXMsIGV4dHJhY3RhYmxlLCBrZXlVc2FnZXNC
aXRtYXAsIFdURk1vdmUoY2FsbGJhY2spLCBXVEZNb3ZlKGV4Y2VwdGlvbkNhbGxiYWNrKSk7CiAg
ICAgfTsKLSAgICBhdXRvIGV4Y2VwdGlvbkNhbGxiYWNrID0gW2luZGV4LCBzdWJ0bGVDcnlwdG9X
ZWFrUG9pbnRlcl0oRXhjZXB0aW9uQ29kZSBlYykgbXV0YWJsZSB7Ci0gICAgICAgIGlmIChhdXRv
IHByb21pc2UgPSBnZXRQcm9taXNlKGluZGV4LCBzdWJ0bGVDcnlwdG9XZWFrUG9pbnRlcikpCisg
ICAgYXV0byBleGNlcHRpb25DYWxsYmFjayA9IFtpbmRleCwgd2Vha1RoaXNdKEV4Y2VwdGlvbkNv
ZGUgZWMpIG11dGFibGUgeworICAgICAgICBpZiAoYXV0byBwcm9taXNlID0gZ2V0UHJvbWlzZShp
bmRleCwgd2Vha1RoaXMpKQogICAgICAgICAgICAgcmVqZWN0V2l0aEV4Y2VwdGlvbihwcm9taXNl
LnJlbGVhc2VOb25OdWxsKCksIGVjKTsKICAgICB9OwogCkBAIC04NzAsMTMgKzg3MCwxMyBAQCB2
b2lkIFN1YnRsZUNyeXB0bzo6ZGVyaXZlQml0cyhKU0M6OkpTR2xvYmFsT2JqZWN0JiBzdGF0ZSwg
QWxnb3JpdGhtSWRlbnRpZmllciYmCiAKICAgICBhdXRvIGluZGV4ID0gcHJvbWlzZS5wdHIoKTsK
ICAgICBtX3BlbmRpbmdQcm9taXNlcy5hZGQoaW5kZXgsIFdURk1vdmUocHJvbWlzZSkpOwotICAg
IGF1dG8gc3VidGxlQ3J5cHRvV2Vha1BvaW50ZXIgPSBtYWtlV2Vha1B0cigqdGhpcyk7Ci0gICAg
YXV0byBjYWxsYmFjayA9IFtpbmRleCwgc3VidGxlQ3J5cHRvV2Vha1BvaW50ZXJdKGNvbnN0IFZl
Y3Rvcjx1aW50OF90PiYgZGVyaXZlZEtleSkgbXV0YWJsZSB7Ci0gICAgICAgIGlmIChhdXRvIHBy
b21pc2UgPSBnZXRQcm9taXNlKGluZGV4LCBzdWJ0bGVDcnlwdG9XZWFrUG9pbnRlcikpCisgICAg
V2Vha1B0ciB3ZWFrVGhpcyB7ICp0aGlzIH07CisgICAgYXV0byBjYWxsYmFjayA9IFtpbmRleCwg
d2Vha1RoaXNdKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgZGVyaXZlZEtleSkgbXV0YWJsZSB7Cisg
ICAgICAgIGlmIChhdXRvIHByb21pc2UgPSBnZXRQcm9taXNlKGluZGV4LCB3ZWFrVGhpcykpCiAg
ICAgICAgICAgICBmdWxmaWxsUHJvbWlzZVdpdGhBcnJheUJ1ZmZlcihwcm9taXNlLnJlbGVhc2VO
b25OdWxsKCksIGRlcml2ZWRLZXkuZGF0YSgpLCBkZXJpdmVkS2V5LnNpemUoKSk7CiAgICAgfTsK
LSAgICBhdXRvIGV4Y2VwdGlvbkNhbGxiYWNrID0gW2luZGV4LCBzdWJ0bGVDcnlwdG9XZWFrUG9p
bnRlcl0oRXhjZXB0aW9uQ29kZSBlYykgbXV0YWJsZSB7Ci0gICAgICAgIGlmIChhdXRvIHByb21p
c2UgPSBnZXRQcm9taXNlKGluZGV4LCBzdWJ0bGVDcnlwdG9XZWFrUG9pbnRlcikpCisgICAgYXV0
byBleGNlcHRpb25DYWxsYmFjayA9IFtpbmRleCwgd2Vha1RoaXNdKEV4Y2VwdGlvbkNvZGUgZWMp
IG11dGFibGUgeworICAgICAgICBpZiAoYXV0byBwcm9taXNlID0gZ2V0UHJvbWlzZShpbmRleCwg
d2Vha1RoaXMpKQogICAgICAgICAgICAgcmVqZWN0V2l0aEV4Y2VwdGlvbihwcm9taXNlLnJlbGVh
c2VOb25OdWxsKCksIGVjKTsKICAgICB9OwogCkBAIC05MDUsOSArOTA1LDkgQEAgdm9pZCBTdWJ0
bGVDcnlwdG86OmltcG9ydEtleShKU0M6OkpTR2xvYmFsT2JqZWN0JiBzdGF0ZSwgS2V5Rm9ybWF0
IGZvcm1hdCwgS2V5RGEKIAogICAgIGF1dG8gaW5kZXggPSBwcm9taXNlLnB0cigpOwogICAgIG1f
cGVuZGluZ1Byb21pc2VzLmFkZChpbmRleCwgV1RGTW92ZShwcm9taXNlKSk7Ci0gICAgYXV0byBz
dWJ0bGVDcnlwdG9XZWFrUG9pbnRlciA9IG1ha2VXZWFrUHRyKCp0aGlzKTsKLSAgICBhdXRvIGNh
bGxiYWNrID0gW2luZGV4LCBzdWJ0bGVDcnlwdG9XZWFrUG9pbnRlcl0oQ3J5cHRvS2V5JiBrZXkp
IG11dGFibGUgewotICAgICAgICBpZiAoYXV0byBwcm9taXNlID0gZ2V0UHJvbWlzZShpbmRleCwg
c3VidGxlQ3J5cHRvV2Vha1BvaW50ZXIpKSB7CisgICAgV2Vha1B0ciB3ZWFrVGhpcyB7ICp0aGlz
IH07CisgICAgYXV0byBjYWxsYmFjayA9IFtpbmRleCwgd2Vha1RoaXNdKENyeXB0b0tleSYga2V5
KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKGF1dG8gcHJvbWlzZSA9IGdldFByb21pc2UoaW5kZXgs
IHdlYWtUaGlzKSkgewogICAgICAgICAgICAgaWYgKChrZXkudHlwZSgpID09IENyeXB0b0tleVR5
cGU6OlByaXZhdGUgfHwga2V5LnR5cGUoKSA9PSBDcnlwdG9LZXlUeXBlOjpTZWNyZXQpICYmICFr
ZXkudXNhZ2VzQml0bWFwKCkpIHsKICAgICAgICAgICAgICAgICByZWplY3RXaXRoRXhjZXB0aW9u
KHByb21pc2UucmVsZWFzZU5vbk51bGwoKSwgU3ludGF4RXJyb3IpOwogICAgICAgICAgICAgICAg
IHJldHVybjsKQEAgLTkxNSw4ICs5MTUsOCBAQCB2b2lkIFN1YnRsZUNyeXB0bzo6aW1wb3J0S2V5
KEpTQzo6SlNHbG9iYWxPYmplY3QmIHN0YXRlLCBLZXlGb3JtYXQgZm9ybWF0LCBLZXlEYQogICAg
ICAgICAgICAgcHJvbWlzZS0+cmVzb2x2ZTxJRExJbnRlcmZhY2U8Q3J5cHRvS2V5Pj4oa2V5KTsK
ICAgICAgICAgfQogICAgIH07Ci0gICAgYXV0byBleGNlcHRpb25DYWxsYmFjayA9IFtpbmRleCwg
c3VidGxlQ3J5cHRvV2Vha1BvaW50ZXJdKEV4Y2VwdGlvbkNvZGUgZWMpIG11dGFibGUgewotICAg
ICAgICBpZiAoYXV0byBwcm9taXNlID0gZ2V0UHJvbWlzZShpbmRleCwgc3VidGxlQ3J5cHRvV2Vh
a1BvaW50ZXIpKQorICAgIGF1dG8gZXhjZXB0aW9uQ2FsbGJhY2sgPSBbaW5kZXgsIHdlYWtUaGlz
XShFeGNlcHRpb25Db2RlIGVjKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKGF1dG8gcHJvbWlzZSA9
IGdldFByb21pc2UoaW5kZXgsIHdlYWtUaGlzKSkKICAgICAgICAgICAgIHJlamVjdFdpdGhFeGNl
cHRpb24ocHJvbWlzZS5yZWxlYXNlTm9uTnVsbCgpLCBlYyk7CiAgICAgfTsKIApAQCAtOTQyLDkg
Kzk0Miw5IEBAIHZvaWQgU3VidGxlQ3J5cHRvOjpleHBvcnRLZXkoS2V5Rm9ybWF0IGZvcm1hdCwg
Q3J5cHRvS2V5JiBrZXksIFJlZjxEZWZlcnJlZFByb21pCiAKICAgICBhdXRvIGluZGV4ID0gcHJv
bWlzZS5wdHIoKTsKICAgICBtX3BlbmRpbmdQcm9taXNlcy5hZGQoaW5kZXgsIFdURk1vdmUocHJv
bWlzZSkpOwotICAgIGF1dG8gc3VidGxlQ3J5cHRvV2Vha1BvaW50ZXIgPSBtYWtlV2Vha1B0cigq
dGhpcyk7Ci0gICAgYXV0byBjYWxsYmFjayA9IFtpbmRleCwgc3VidGxlQ3J5cHRvV2Vha1BvaW50
ZXJdKFN1YnRsZUNyeXB0bzo6S2V5Rm9ybWF0IGZvcm1hdCwgS2V5RGF0YSYmIGtleSkgbXV0YWJs
ZSB7Ci0gICAgICAgIGlmIChhdXRvIHByb21pc2UgPSBnZXRQcm9taXNlKGluZGV4LCBzdWJ0bGVD
cnlwdG9XZWFrUG9pbnRlcikpIHsKKyAgICBXZWFrUHRyIHdlYWtUaGlzIHsgKnRoaXMgfTsKKyAg
ICBhdXRvIGNhbGxiYWNrID0gW2luZGV4LCB3ZWFrVGhpc10oU3VidGxlQ3J5cHRvOjpLZXlGb3Jt
YXQgZm9ybWF0LCBLZXlEYXRhJiYga2V5KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKGF1dG8gcHJv
bWlzZSA9IGdldFByb21pc2UoaW5kZXgsIHdlYWtUaGlzKSkgewogICAgICAgICAgICAgc3dpdGNo
IChmb3JtYXQpIHsKICAgICAgICAgICAgIGNhc2UgU3VidGxlQ3J5cHRvOjpLZXlGb3JtYXQ6OlNw
a2k6CiAgICAgICAgICAgICBjYXNlIFN1YnRsZUNyeXB0bzo6S2V5Rm9ybWF0OjpQa2NzODoKQEAg
LTk2MCw4ICs5NjAsOCBAQCB2b2lkIFN1YnRsZUNyeXB0bzo6ZXhwb3J0S2V5KEtleUZvcm1hdCBm
b3JtYXQsIENyeXB0b0tleSYga2V5LCBSZWY8RGVmZXJyZWRQcm9taQogICAgICAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIH0KICAgICB9OwotICAgIGF1dG8gZXhjZXB0aW9u
Q2FsbGJhY2sgPSBbaW5kZXgsIHN1YnRsZUNyeXB0b1dlYWtQb2ludGVyXShFeGNlcHRpb25Db2Rl
IGVjKSBtdXRhYmxlIHsKLSAgICAgICAgaWYgKGF1dG8gcHJvbWlzZSA9IGdldFByb21pc2UoaW5k
ZXgsIHN1YnRsZUNyeXB0b1dlYWtQb2ludGVyKSkKKyAgICBhdXRvIGV4Y2VwdGlvbkNhbGxiYWNr
ID0gW2luZGV4LCB3ZWFrVGhpc10oRXhjZXB0aW9uQ29kZSBlYykgbXV0YWJsZSB7CisgICAgICAg
IGlmIChhdXRvIHByb21pc2UgPSBnZXRQcm9taXNlKGluZGV4LCB3ZWFrVGhpcykpCiAgICAgICAg
ICAgICByZWplY3RXaXRoRXhjZXB0aW9uKHByb21pc2UucmVsZWFzZU5vbk51bGwoKSwgZWMpOwog
ICAgIH07CiAKQEAgLTEwMTYsMTAgKzEwMTYsMTAgQEAgdm9pZCBTdWJ0bGVDcnlwdG86OndyYXBL
ZXkoSlNDOjpKU0dsb2JhbE9iamVjdCYgc3RhdGUsIEtleUZvcm1hdCBmb3JtYXQsIENyeXB0b0sK
IAogICAgIGF1dG8gaW5kZXggPSBwcm9taXNlLnB0cigpOwogICAgIG1fcGVuZGluZ1Byb21pc2Vz
LmFkZChpbmRleCwgV1RGTW92ZShwcm9taXNlKSk7Ci0gICAgYXV0byBzdWJ0bGVDcnlwdG9XZWFr
UG9pbnRlciA9IG1ha2VXZWFrUHRyKCp0aGlzKTsKLSAgICBhdXRvIGNhbGxiYWNrID0gW2luZGV4
LCBzdWJ0bGVDcnlwdG9XZWFrUG9pbnRlciwgd3JhcEFsZ29yaXRobSwgd3JhcHBpbmdLZXkgPSBS
ZWYgeyB3cmFwcGluZ0tleSB9LCB3cmFwUGFyYW1zID0gV1RGTW92ZSh3cmFwUGFyYW1zKSwgaXNF
bmNyeXB0aW9uLCBjb250ZXh0LCB3b3JrUXVldWUgPSBtX3dvcmtRdWV1ZV0oU3VidGxlQ3J5cHRv
OjpLZXlGb3JtYXQgZm9ybWF0LCBLZXlEYXRhJiYga2V5KSBtdXRhYmxlIHsKLSAgICAgICAgaWYg
KHN1YnRsZUNyeXB0b1dlYWtQb2ludGVyKSB7Ci0gICAgICAgICAgICBpZiAoYXV0byBwcm9taXNl
ID0gc3VidGxlQ3J5cHRvV2Vha1BvaW50ZXItPm1fcGVuZGluZ1Byb21pc2VzLmdldChpbmRleCkp
IHsKKyAgICBXZWFrUHRyIHdlYWtUaGlzIHsgKnRoaXMgfTsKKyAgICBhdXRvIGNhbGxiYWNrID0g
W2luZGV4LCB3ZWFrVGhpcywgd3JhcEFsZ29yaXRobSwgd3JhcHBpbmdLZXkgPSBSZWYgeyB3cmFw
cGluZ0tleSB9LCB3cmFwUGFyYW1zID0gV1RGTW92ZSh3cmFwUGFyYW1zKSwgaXNFbmNyeXB0aW9u
LCBjb250ZXh0LCB3b3JrUXVldWUgPSBtX3dvcmtRdWV1ZV0oU3VidGxlQ3J5cHRvOjpLZXlGb3Jt
YXQgZm9ybWF0LCBLZXlEYXRhJiYga2V5KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHdlYWtUaGlz
KSB7CisgICAgICAgICAgICBpZiAoYXV0byBwcm9taXNlID0gd2Vha1RoaXMtPm1fcGVuZGluZ1By
b21pc2VzLmdldChpbmRleCkpIHsKICAgICAgICAgICAgICAgICBWZWN0b3I8dWludDhfdD4gYnl0
ZXM7CiAgICAgICAgICAgICAgICAgc3dpdGNoIChmb3JtYXQpIHsKICAgICAgICAgICAgICAgICBj
YXNlIFN1YnRsZUNyeXB0bzo6S2V5Rm9ybWF0OjpTcGtpOgpAQCAtMTAzNiwxMiArMTAzNiwxMiBA
QCB2b2lkIFN1YnRsZUNyeXB0bzo6d3JhcEtleShKU0M6OkpTR2xvYmFsT2JqZWN0JiBzdGF0ZSwg
S2V5Rm9ybWF0IGZvcm1hdCwgQ3J5cHRvSwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICB9CiAKLSAgICAgICAgICAgICAgICBhdXRvIGNhbGxiYWNrID0gW2luZGV4LCBzdWJ0bGVD
cnlwdG9XZWFrUG9pbnRlcl0oY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiB3cmFwcGVkS2V5KSBtdXRh
YmxlIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8gcHJvbWlzZSA9IGdldFByb21pc2Uo
aW5kZXgsIHN1YnRsZUNyeXB0b1dlYWtQb2ludGVyKSkKKyAgICAgICAgICAgICAgICBhdXRvIGNh
bGxiYWNrID0gW2luZGV4LCB3ZWFrVGhpc10oY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiB3cmFwcGVk
S2V5KSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8gcHJvbWlzZSA9IGdl
dFByb21pc2UoaW5kZXgsIHdlYWtUaGlzKSkKICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGZp
bGxQcm9taXNlV2l0aEFycmF5QnVmZmVyKHByb21pc2UucmVsZWFzZU5vbk51bGwoKSwgd3JhcHBl
ZEtleS5kYXRhKCksIHdyYXBwZWRLZXkuc2l6ZSgpKTsKICAgICAgICAgICAgICAgICB9OwotICAg
ICAgICAgICAgICAgIGF1dG8gZXhjZXB0aW9uQ2FsbGJhY2sgPSBbaW5kZXgsIHN1YnRsZUNyeXB0
b1dlYWtQb2ludGVyXShFeGNlcHRpb25Db2RlIGVjKSBtdXRhYmxlIHsKLSAgICAgICAgICAgICAg
ICAgICAgaWYgKGF1dG8gcHJvbWlzZSA9IGdldFByb21pc2UoaW5kZXgsIHN1YnRsZUNyeXB0b1dl
YWtQb2ludGVyKSkKKyAgICAgICAgICAgICAgICBhdXRvIGV4Y2VwdGlvbkNhbGxiYWNrID0gW2lu
ZGV4LCB3ZWFrVGhpc10oRXhjZXB0aW9uQ29kZSBlYykgbXV0YWJsZSB7CisgICAgICAgICAgICAg
ICAgICAgIGlmIChhdXRvIHByb21pc2UgPSBnZXRQcm9taXNlKGluZGV4LCB3ZWFrVGhpcykpCiAg
ICAgICAgICAgICAgICAgICAgICAgICByZWplY3RXaXRoRXhjZXB0aW9uKHByb21pc2UucmVsZWFz
ZU5vbk51bGwoKSwgZWMpOwogICAgICAgICAgICAgICAgIH07CiAKQEAgLTEwNTcsOCArMTA1Nyw4
IEBAIHZvaWQgU3VidGxlQ3J5cHRvOjp3cmFwS2V5KEpTQzo6SlNHbG9iYWxPYmplY3QmIHN0YXRl
LCBLZXlGb3JtYXQgZm9ybWF0LCBDcnlwdG9LCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAg
ICB9OwotICAgIGF1dG8gZXhjZXB0aW9uQ2FsbGJhY2sgPSBbaW5kZXgsIHN1YnRsZUNyeXB0b1dl
YWtQb2ludGVyXShFeGNlcHRpb25Db2RlIGVjKSBtdXRhYmxlIHsKLSAgICAgICAgaWYgKGF1dG8g
cHJvbWlzZSA9IGdldFByb21pc2UoaW5kZXgsIHN1YnRsZUNyeXB0b1dlYWtQb2ludGVyKSkKKyAg
ICBhdXRvIGV4Y2VwdGlvbkNhbGxiYWNrID0gW2luZGV4LCB3ZWFrVGhpc10oRXhjZXB0aW9uQ29k
ZSBlYykgbXV0YWJsZSB7CisgICAgICAgIGlmIChhdXRvIHByb21pc2UgPSBnZXRQcm9taXNlKGlu
ZGV4LCB3ZWFrVGhpcykpCiAgICAgICAgICAgICByZWplY3RXaXRoRXhjZXB0aW9uKHByb21pc2Uu
cmVsZWFzZU5vbk51bGwoKSwgZWMpOwogICAgIH07CiAKQEAgLTExMTcsMTAgKzExMTcsMTAgQEAg
dm9pZCBTdWJ0bGVDcnlwdG86OnVud3JhcEtleShKU0M6OkpTR2xvYmFsT2JqZWN0JiBzdGF0ZSwg
S2V5Rm9ybWF0IGZvcm1hdCwgQnVmZmUKIAogICAgIGF1dG8gaW5kZXggPSBwcm9taXNlLnB0cigp
OwogICAgIG1fcGVuZGluZ1Byb21pc2VzLmFkZChpbmRleCwgV1RGTW92ZShwcm9taXNlKSk7Ci0g
ICAgYXV0byBzdWJ0bGVDcnlwdG9XZWFrUG9pbnRlciA9IG1ha2VXZWFrUHRyKCp0aGlzKTsKLSAg
ICBhdXRvIGNhbGxiYWNrID0gW2luZGV4LCBzdWJ0bGVDcnlwdG9XZWFrUG9pbnRlciwgZm9ybWF0
LCBpbXBvcnRBbGdvcml0aG0sIHVud3JhcHBlZEtleUFsZ29yaXRobSA9IGNyb3NzVGhyZWFkQ29w
eUltcG9ydFBhcmFtcygqdW53cmFwcGVkS2V5QWxnb3JpdGhtKSwgZXh0cmFjdGFibGUsIGtleVVz
YWdlc0JpdG1hcF0oY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBieXRlcykgbXV0YWJsZSB7Ci0gICAg
ICAgIGlmIChzdWJ0bGVDcnlwdG9XZWFrUG9pbnRlcikgewotICAgICAgICAgICAgaWYgKGF1dG8g
cHJvbWlzZSA9IHN1YnRsZUNyeXB0b1dlYWtQb2ludGVyLT5tX3BlbmRpbmdQcm9taXNlcy5nZXQo
aW5kZXgpKSB7CisgICAgV2Vha1B0ciB3ZWFrVGhpcyB7ICp0aGlzIH07CisgICAgYXV0byBjYWxs
YmFjayA9IFtpbmRleCwgd2Vha1RoaXMsIGZvcm1hdCwgaW1wb3J0QWxnb3JpdGhtLCB1bndyYXBw
ZWRLZXlBbGdvcml0aG0gPSBjcm9zc1RocmVhZENvcHlJbXBvcnRQYXJhbXMoKnVud3JhcHBlZEtl
eUFsZ29yaXRobSksIGV4dHJhY3RhYmxlLCBrZXlVc2FnZXNCaXRtYXBdKGNvbnN0IFZlY3Rvcjx1
aW50OF90PiYgYnl0ZXMpIG11dGFibGUgeworICAgICAgICBpZiAod2Vha1RoaXMpIHsKKyAgICAg
ICAgICAgIGlmIChhdXRvIHByb21pc2UgPSB3ZWFrVGhpcy0+bV9wZW5kaW5nUHJvbWlzZXMuZ2V0
KGluZGV4KSkgewogICAgICAgICAgICAgICAgIEtleURhdGEga2V5RGF0YTsKICAgICAgICAgICAg
ICAgICBzd2l0Y2ggKGZvcm1hdCkgewogICAgICAgICAgICAgICAgIGNhc2UgU3VidGxlQ3J5cHRv
OjpLZXlGb3JtYXQ6OlNwa2k6CkBAIC0xMTQ5LDggKzExNDksOCBAQCB2b2lkIFN1YnRsZUNyeXB0
bzo6dW53cmFwS2V5KEpTQzo6SlNHbG9iYWxPYmplY3QmIHN0YXRlLCBLZXlGb3JtYXQgZm9ybWF0
LCBCdWZmZQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAg
ICAgICAgICBhdXRvIGNhbGxiYWNrID0gW2luZGV4LCBzdWJ0bGVDcnlwdG9XZWFrUG9pbnRlcl0o
Q3J5cHRvS2V5JiBrZXkpIG11dGFibGUgewotICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byBw
cm9taXNlID0gZ2V0UHJvbWlzZShpbmRleCwgc3VidGxlQ3J5cHRvV2Vha1BvaW50ZXIpKSB7Cisg
ICAgICAgICAgICAgICAgYXV0byBjYWxsYmFjayA9IFtpbmRleCwgd2Vha1RoaXNdKENyeXB0b0tl
eSYga2V5KSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8gcHJvbWlzZSA9
IGdldFByb21pc2UoaW5kZXgsIHdlYWtUaGlzKSkgewogICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKChrZXkudHlwZSgpID09IENyeXB0b0tleVR5cGU6OlByaXZhdGUgfHwga2V5LnR5cGUoKSA9
PSBDcnlwdG9LZXlUeXBlOjpTZWNyZXQpICYmICFrZXkudXNhZ2VzQml0bWFwKCkpIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZWplY3RXaXRoRXhjZXB0aW9uKHByb21pc2UucmVsZWFz
ZU5vbk51bGwoKSwgU3ludGF4RXJyb3IpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybjsKQEAgLTExNTgsOCArMTE1OCw4IEBAIHZvaWQgU3VidGxlQ3J5cHRvOjp1bndyYXBLZXko
SlNDOjpKU0dsb2JhbE9iamVjdCYgc3RhdGUsIEtleUZvcm1hdCBmb3JtYXQsIEJ1ZmZlCiAgICAg
ICAgICAgICAgICAgICAgICAgICBwcm9taXNlLT5yZXNvbHZlPElETEludGVyZmFjZTxDcnlwdG9L
ZXk+PihrZXkpOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfTsKLSAg
ICAgICAgICAgICAgICBhdXRvIGV4Y2VwdGlvbkNhbGxiYWNrID0gW2luZGV4LCBzdWJ0bGVDcnlw
dG9XZWFrUG9pbnRlcl0oRXhjZXB0aW9uQ29kZSBlYykgbXV0YWJsZSB7Ci0gICAgICAgICAgICAg
ICAgICAgIGlmIChhdXRvIHByb21pc2UgPSBnZXRQcm9taXNlKGluZGV4LCBzdWJ0bGVDcnlwdG9X
ZWFrUG9pbnRlcikpCisgICAgICAgICAgICAgICAgYXV0byBleGNlcHRpb25DYWxsYmFjayA9IFtp
bmRleCwgd2Vha1RoaXNdKEV4Y2VwdGlvbkNvZGUgZWMpIG11dGFibGUgeworICAgICAgICAgICAg
ICAgICAgICBpZiAoYXV0byBwcm9taXNlID0gZ2V0UHJvbWlzZShpbmRleCwgd2Vha1RoaXMpKQog
ICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0V2l0aEV4Y2VwdGlvbihwcm9taXNlLnJlbGVh
c2VOb25OdWxsKCksIGVjKTsKICAgICAgICAgICAgICAgICB9OwogCkBAIC0xMTY4LDggKzExNjgs
OCBAQCB2b2lkIFN1YnRsZUNyeXB0bzo6dW53cmFwS2V5KEpTQzo6SlNHbG9iYWxPYmplY3QmIHN0
YXRlLCBLZXlGb3JtYXQgZm9ybWF0LCBCdWZmZQogICAgICAgICAgICAgfQogICAgICAgICB9CiAg
ICAgfTsKLSAgICBhdXRvIGV4Y2VwdGlvbkNhbGxiYWNrID0gW2luZGV4LCBzdWJ0bGVDcnlwdG9X
ZWFrUG9pbnRlcl0oRXhjZXB0aW9uQ29kZSBlYykgbXV0YWJsZSB7Ci0gICAgICAgIGlmIChhdXRv
IHByb21pc2UgPSBnZXRQcm9taXNlKGluZGV4LCBzdWJ0bGVDcnlwdG9XZWFrUG9pbnRlcikpCisg
ICAgYXV0byBleGNlcHRpb25DYWxsYmFjayA9IFtpbmRleCwgd2Vha1RoaXNdKEV4Y2VwdGlvbkNv
ZGUgZWMpIG11dGFibGUgeworICAgICAgICBpZiAoYXV0byBwcm9taXNlID0gZ2V0UHJvbWlzZShp
bmRleCwgd2Vha1RoaXMpKQogICAgICAgICAgICAgcmVqZWN0V2l0aEV4Y2VwdGlvbihwcm9taXNl
LnJlbGVhc2VOb25OdWxsKCksIGVjKTsKICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTRm9udEZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNl
LmNwcAppbmRleCA0YTYyNjJkYTlhNTA1ZjVkYWI0OTYwMWI0MDNlYWMwNTE1OWI3NmI0Li4xMzQ5
NDhjYmZkYjc3ZDZjMjUyNzc2NDE0OTFlNzlmYTEzZWM4MTVkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
b250RmFjZS5jcHAKQEAgLTEwMiw3ICsxMDIsNyBAQCBSZWY8Q1NTRm9udEZhY2U+IENTU0ZvbnRG
YWNlOjpjcmVhdGUoQ1NTRm9udFNlbGVjdG9yJiBmb250U2VsZWN0b3IsIFN0eWxlUnVsZUZvbgog
CiBDU1NGb250RmFjZTo6Q1NTRm9udEZhY2UoY29uc3QgU2V0dGluZ3M6OlZhbHVlcyogc2V0dGlu
Z3MsIFN0eWxlUnVsZUZvbnRGYWNlKiBjc3NDb25uZWN0aW9uLCBGb250RmFjZSogd3JhcHBlciwg
Ym9vbCBpc0xvY2FsRmFsbGJhY2spCiAgICAgOiBtX2Nzc0Nvbm5lY3Rpb24oY3NzQ29ubmVjdGlv
bikKLSAgICAsIG1fd3JhcHBlcihtYWtlV2Vha1B0cih3cmFwcGVyKSkKKyAgICAsIG1fd3JhcHBl
cih3cmFwcGVyKQogICAgICwgbV9pc0xvY2FsRmFsbGJhY2soaXNMb2NhbEZhbGxiYWNrKQogICAg
ICwgbV9tYXlCZVB1cmdlZCghd3JhcHBlcikKICAgICAsIG1fc2hvdWxkSWdub3JlRm9udExvYWRD
b21wbGV0aW9ucyhzZXR0aW5ncyAmJiBzZXR0aW5ncy0+c2hvdWxkSWdub3JlRm9udExvYWRDb21w
bGV0aW9ucykKQEAgLTQ1NywxNCArNDU3LDE0IEBAIFJlZjxGb250RmFjZT4gQ1NTRm9udEZhY2U6
OndyYXBwZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKICAgICB9CiAKICAgICBh
dXRvIHdyYXBwZXIgPSBGb250RmFjZTo6Y3JlYXRlKGNvbnRleHQsICp0aGlzKTsKLSAgICBtX3dy
YXBwZXIgPSBtYWtlV2Vha1B0cih3cmFwcGVyLmdldCgpKTsKKyAgICBtX3dyYXBwZXIgPSB3cmFw
cGVyOwogICAgIGluaXRpYWxpemVXcmFwcGVyKCk7CiAgICAgcmV0dXJuIHdyYXBwZXI7CiB9CiAK
IHZvaWQgQ1NTRm9udEZhY2U6OnNldFdyYXBwZXIoRm9udEZhY2UmIG5ld1dyYXBwZXIpCiB7Ci0g
ICAgbV93cmFwcGVyID0gbWFrZVdlYWtQdHIobmV3V3JhcHBlcik7CisgICAgbV93cmFwcGVyID0g
bmV3V3JhcHBlcjsKICAgICBpbml0aWFsaXplV3JhcHBlcigpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0ZvbnRGYWNlU2V0LmNwcAppbmRleCAxOGMyYWY4Y2RmMjFhZDhhYzZiOTZhNDBjNDY0NjJl
MGI4ZjMxZjA1Li5hNzZhYWNlOTc0NDRlMjNiNWFiMDNhZTVjMDQ5YTQ0ZDc0ZGZhZmFhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTZXQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNldC5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogQ1NTRm9udEZhY2VTZXQ6OkNTU0ZvbnRGYWNlU2V0KENTU0ZvbnRT
ZWxlY3Rvciogb3duaW5nRm9udFNlbGVjdG9yKQotICAgIDogbV9vd25pbmdGb250U2VsZWN0b3Io
bWFrZVdlYWtQdHIob3duaW5nRm9udFNlbGVjdG9yKSkKKyAgICA6IG1fb3duaW5nRm9udFNlbGVj
dG9yKG93bmluZ0ZvbnRTZWxlY3RvcikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250
RmFjZVNvdXJjZS5jcHAKaW5kZXggNmE1YmJiNWIzZjRjMDc4NGEzYWJkMDgzZTk1OWFhNWEyM2Y2
OGViZS4uY2FkYzRhMDU5NGM1YmY2Mzc4Y2ZhN2IwZThjYTQ3NTI2NTYwYmFkZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwCkBAIC03Nyw3ICs3Nyw3IEBAIENTU0Zv
bnRGYWNlU291cmNlOjpDU1NGb250RmFjZVNvdXJjZShDU1NGb250RmFjZSYgb3duZXIsIGNvbnN0
IFN0cmluZyYgZmFtaWx5TmFtCiBDU1NGb250RmFjZVNvdXJjZTo6Q1NTRm9udEZhY2VTb3VyY2Uo
Q1NTRm9udEZhY2UmIG93bmVyLCBjb25zdCBTdHJpbmcmIGZhbWlseU5hbWVPclVSSSwgQ1NTRm9u
dFNlbGVjdG9yJiBmb250U2VsZWN0b3IsIFVuaXF1ZVJlZjxGb250TG9hZFJlcXVlc3Q+JiYgcmVx
dWVzdCkKICAgICA6IG1fZmFtaWx5TmFtZU9yVVJJKGZhbWlseU5hbWVPclVSSSkKICAgICAsIG1f
ZmFjZShvd25lcikKLSAgICAsIG1fZm9udFNlbGVjdG9yKG1ha2VXZWFrUHRyKGZvbnRTZWxlY3Rv
cikpCisgICAgLCBtX2ZvbnRTZWxlY3Rvcihmb250U2VsZWN0b3IpCiAgICAgLCBtX2ZvbnRSZXF1
ZXN0KHJlcXVlc3QubW92ZVRvVW5pcXVlUHRyKCkpCiB7CiAgICAgLy8gVGhpcyBtYXkgc3luY2hy
b25vdXNseSBjYWxsIGZvbnRMb2FkZWQoKS4KQEAgLTk3LDcgKzk3LDcgQEAgQ1NTRm9udEZhY2VT
b3VyY2U6OkNTU0ZvbnRGYWNlU291cmNlKENTU0ZvbnRGYWNlJiBvd25lciwgY29uc3QgU3RyaW5n
JiBmYW1pbHlOYW0KIENTU0ZvbnRGYWNlU291cmNlOjpDU1NGb250RmFjZVNvdXJjZShDU1NGb250
RmFjZSYgb3duZXIsIGNvbnN0IFN0cmluZyYgZmFtaWx5TmFtZU9yVVJJLCBTVkdGb250RmFjZUVs
ZW1lbnQmIGZvbnRGYWNlKQogICAgIDogbV9mYW1pbHlOYW1lT3JVUkkoZmFtaWx5TmFtZU9yVVJJ
KQogICAgICwgbV9mYWNlKG93bmVyKQotICAgICwgbV9zdmdGb250RmFjZUVsZW1lbnQobWFrZVdl
YWtQdHIoZm9udEZhY2UpKQorICAgICwgbV9zdmdGb250RmFjZUVsZW1lbnQoZm9udEZhY2UpCiAg
ICAgLCBtX2hhc1NWR0ZvbnRGYWNlRWxlbWVudCh0cnVlKQogewogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTRm9udFNlbGVjdG9yLmNwcAppbmRleCBkYTg2NTNkOTQwMjBmMTljN2NmODExMWY5NTAwODYy
ODI0ZDIyYzU2Li5hZTExYThiOWNlOGUwZjdhZjJlMWM3MjlhMWEzNWQ1OTg0NmVlOTg2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmNwcApAQCAtNjQsNyArNjQsNyBAQCBzdGF0
aWMgdW5zaWduZWQgZm9udFNlbGVjdG9ySWQ7CiAKIENTU0ZvbnRTZWxlY3Rvcjo6Q1NTRm9udFNl
bGVjdG9yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCiAgICAgOiBBY3RpdmVET01P
YmplY3QoJmNvbnRleHQpCi0gICAgLCBtX2NvbnRleHQobWFrZVdlYWtQdHIoY29udGV4dCkpCisg
ICAgLCBtX2NvbnRleHQoY29udGV4dCkKICAgICAsIG1fZm9udENhY2hlKGNvbnRleHQuZm9udENh
Y2hlKCkpCiAgICAgLCBtX2Nzc0ZvbnRGYWNlU2V0KENTU0ZvbnRGYWNlU2V0OjpjcmVhdGUodGhp
cykpCiAgICAgLCBtX2ZvbnRNb2RpZmllZE9ic2VydmVyKFt0aGlzXSB7IGZvbnRNb2RpZmllZCgp
OyB9KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCmluZGV4IDk1
ODU2MGRmY2IwMTU3YmFjOThlOTUyZjZlNWYzZWIxM2MwMGYyY2IuLmQ0NzM5MWZiZWZjMDg1NjY2
ZjdlNGQ0YjJmNjM3MDNlODZhNjc2NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9N
ZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVy
eUV2YWx1YXRvci5jcHAKQEAgLTEyMyw3ICsxMjMsNyBAQCBNZWRpYVF1ZXJ5RXZhbHVhdG9yOjpN
ZWRpYVF1ZXJ5RXZhbHVhdG9yKGNvbnN0IFN0cmluZyYgYWNjZXB0ZWRNZWRpYVR5cGUsIGJvb2wg
bQogCiBNZWRpYVF1ZXJ5RXZhbHVhdG9yOjpNZWRpYVF1ZXJ5RXZhbHVhdG9yKGNvbnN0IFN0cmlu
ZyYgYWNjZXB0ZWRNZWRpYVR5cGUsIGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgUmVu
ZGVyU3R5bGUqIHN0eWxlKQogICAgIDogbV9tZWRpYVR5cGUoYWNjZXB0ZWRNZWRpYVR5cGUpCi0g
ICAgLCBtX2RvY3VtZW50KG1ha2VXZWFrUHRyKGRvY3VtZW50KSkKKyAgICAsIG1fZG9jdW1lbnQo
ZG9jdW1lbnQpCiAgICAgLCBtX3N0eWxlKHN0eWxlKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL01lZGlhUXVlcnlNYXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9N
ZWRpYVF1ZXJ5TWF0Y2hlci5jcHAKaW5kZXggOWU4NjM1ODUzZmUxN2IxNjIyZjgzZDgwYWRmYTUw
YmI0YzFiZDFlMC4uNWI1NWRlYmUwZDczZGEyYzAzY2I4YWFiYzZjNDQ0MWJkNjkwNDA4MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlNYXRjaGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeU1hdGNoZXIuY3BwCkBAIC0zOSw3ICszOSw3IEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIE1lZGlhUXVlcnlNYXRjaGVyOjpNZWRpYVF1ZXJ5TWF0
Y2hlcihEb2N1bWVudCYgZG9jdW1lbnQpCi0gICAgOiBtX2RvY3VtZW50KG1ha2VXZWFrUHRyKGRv
Y3VtZW50KSkKKyAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCiB7CiB9CiAKQEAgLTg2LDcgKzg2
LDcgQEAgYm9vbCBNZWRpYVF1ZXJ5TWF0Y2hlcjo6ZXZhbHVhdGUoY29uc3QgTWVkaWFRdWVyeVNl
dCYgbWVkaWEpCiB2b2lkIE1lZGlhUXVlcnlNYXRjaGVyOjphZGRNZWRpYVF1ZXJ5TGlzdChNZWRp
YVF1ZXJ5TGlzdCYgbGlzdCkKIHsKICAgICBBU1NFUlQoIW1fbWVkaWFRdWVyeUxpc3RzLmNvbnRh
aW5zKCZsaXN0KSk7Ci0gICAgbV9tZWRpYVF1ZXJ5TGlzdHMuYXBwZW5kKG1ha2VXZWFrUHRyKCZs
aXN0KSk7CisgICAgbV9tZWRpYVF1ZXJ5TGlzdHMuYXBwZW5kKGxpc3QpOwogfQogCiB2b2lkIE1l
ZGlhUXVlcnlNYXRjaGVyOjpyZW1vdmVNZWRpYVF1ZXJ5TGlzdChNZWRpYVF1ZXJ5TGlzdCYgbGlz
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Qcm9wZXJ0eVNldENTU1N0eWxlRGVj
bGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1Byb3BlcnR5U2V0Q1NTU3R5bGVEZWNs
YXJhdGlvbi5jcHAKaW5kZXggMzRjYmE2OTQzZDI3NTI3N2JjMTY3NTgwMDE2YjI2ZjY4MjdlMTU4
NC4uMTU3Y2JiMDdkNjBiNmZkZWJkNzFkM2Y5OTlhNTA4M2YxYzM0NjRkMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL1Byb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL1Byb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAK
QEAgLTM0MSw3ICszNDEsNyBAQCBSZWZQdHI8RGVwcmVjYXRlZENTU09NVmFsdWU+IFByb3BlcnR5
U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbjo6d3JhcEZvckRlcHJlY2F0ZWRDUwogICAgICAgICByZXR1
cm4gY2xvbmVkVmFsdWUuZ2V0KCk7CiAKICAgICBSZWZQdHI8RGVwcmVjYXRlZENTU09NVmFsdWU+
IHdyYXBwZXIgPSBpbnRlcm5hbFZhbHVlLT5jcmVhdGVEZXByZWNhdGVkQ1NTT01XcmFwcGVyKCp0
aGlzKTsKLSAgICBjbG9uZWRWYWx1ZSA9IG1ha2VXZWFrUHRyKHdyYXBwZXIuZ2V0KCkpOworICAg
IGNsb25lZFZhbHVlID0gd3JhcHBlcjsKICAgICByZXR1cm4gd3JhcHBlcjsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRMaXN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVNoZWV0TGlzdC5jcHAKaW5kZXggYjUzOTQ3ZDE4Y2UxM2M2MWQ2NjQxMGRk
ODhkZGEwZTNjYjM4ZmZlNy4uNWJiZmUzODZlMGRhZWZiNjkwYjk5ZmViYThlZjE4MWM5Njk0Mzhj
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRMaXN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldExpc3QuY3BwCkBAIC0zNCw3ICszNCw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIFN0eWxl
U2hlZXRMaXN0OjpTdHlsZVNoZWV0TGlzdChEb2N1bWVudCYgZG9jdW1lbnQpCi0gICAgOiBtX2Rv
Y3VtZW50KG1ha2VXZWFrUHRyKGRvY3VtZW50KSkKKyAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQp
CiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTRGVmZXJy
ZWRQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NEZWZlcnJlZFBhcnNl
ci5jcHAKaW5kZXggMGY5OGE5OGY4MzAxNWFhZDA0NTViMmE0ODRmZTIzZWI4Y2QyNWJiZC4uNjA1
M2UzMDc0YTQ0MmQ1MTU4M2FhNTEzOTI5YTg1MmY0NTU3ZTZmMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL3BhcnNlci9DU1NEZWZlcnJlZFBhcnNlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NEZWZlcnJlZFBhcnNlci5jcHAKQEAgLTM1LDcgKzM1LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogQ1NTRGVmZXJyZWRQYXJzZXI6OkNTU0RlZmVycmVkUGFyc2Vy
KGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgc2hlZXRUZXh0
LCBTdHlsZVNoZWV0Q29udGVudHMmIHN0eWxlU2hlZXQpCiAgICAgOiBtX2NvbnRleHQoY29udGV4
dCkKICAgICAsIG1fc2hlZXRUZXh0KHNoZWV0VGV4dCkKLSAgICAsIG1fc3R5bGVTaGVldChtYWtl
V2Vha1B0cihzdHlsZVNoZWV0KSkKKyAgICAsIG1fc3R5bGVTaGVldChzdHlsZVNoZWV0KQogewog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25BbmRN
b3Rpb25BY2Nlc3NDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmll
bnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIuY3BwCmluZGV4IGViZmEzMmZiZGQzZThj
ODgxOGMwNTQzYTI2NjdiZmZhNDYyYzZkZDguLjc3NDIxYjM3MGFlYTA3MzdlY2JhZDAwYTQ4YmI4
NjIyNTEyMDYzYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRh
dGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9EZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIuY3BwCkBAIC03Miw3
ICs3Miw3IEBAIHZvaWQgRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVy
OjpzaG91bGRBbGxvd0FjY2Vzcyhjb25zdCBEb2N1bWVuCiAgICAgICAgIHJldHVybiBjYWxsYmFj
ayhhY2Nlc3NTdGF0ZSk7CiAKICAgICBib29sIG1heVByb21wdCA9IFVzZXJHZXN0dXJlSW5kaWNh
dG9yOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoJmRvY3VtZW50KTsKLSAgICBwYWdlLT5jaHJvbWUo
KS5jbGllbnQoKS5zaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKCpk
b2N1bWVudC5mcmFtZSgpLCBtYXlQcm9tcHQsIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRy
KHRoaXMpLCBzZWN1cml0eU9yaWdpbiA9IFJlZiB7IGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkg
fSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oRGV2aWNlT3JpZW50YXRpb25Pck1vdGlv
blBlcm1pc3Npb25TdGF0ZSBwZXJtaXNzaW9uU3RhdGUpIG11dGFibGUgeworICAgIHBhZ2UtPmNo
cm9tZSgpLmNsaWVudCgpLnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nl
c3MoKmRvY3VtZW50LmZyYW1lKCksIG1heVByb21wdCwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0
ciB7ICp0aGlzIH0sIHNlY3VyaXR5T3JpZ2luID0gUmVmIHsgZG9jdW1lbnQuc2VjdXJpdHlPcmln
aW4oKSB9LCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShEZXZpY2VPcmllbnRhdGlvbk9y
TW90aW9uUGVybWlzc2lvblN0YXRlIHBlcm1pc3Npb25TdGF0ZSkgbXV0YWJsZSB7CiAgICAgICAg
IGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2Fn
ZVBvcnQuY3BwCmluZGV4IGUyYzc1ZWQzY2QzYTBjYWJiZWYyZWU5YjdiNmNjMWJlYjRlNjhiNGQu
LmVkYzRjMGFjNDc3YTU3OWFiNTE0NTVmOWIzZWNiOWNhNDEzY2U5MzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L01lc3NhZ2VQb3J0LmNwcApAQCAtMjU2LDcgKzI1Niw3IEBAIHZvaWQgTWVzc2FnZVBvcnQ6OmRp
c3BhdGNoTWVzc2FnZXMoKQogICAgIGlmICghbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0IHx8IG1f
c2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+YWN0aXZlRE9NT2JqZWN0c0FyZVN1c3BlbmRlZCgpIHx8
ICFpc0VudGFuZ2xlZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIG1lc3NhZ2VzVGFr
ZW5IYW5kbGVyID0gW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldKFZlY3RvcjxN
ZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cz4mJiBtZXNzYWdlcywgRnVuY3Rpb248dm9pZCgpPiYmIGNv
bXBsZXRpb25DYWxsYmFjaykgbXV0YWJsZSB7CisgICAgYXV0byBtZXNzYWdlc1Rha2VuSGFuZGxl
ciA9IFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XShWZWN0b3I8TWVzc2FnZVdp
dGhNZXNzYWdlUG9ydHM+JiYgbWVzc2FnZXMsIEZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9u
Q2FsbGJhY2spIG11dGFibGUgewogICAgICAgICBhdXRvIHNjb3BlRXhpdCA9IG1ha2VTY29wZUV4
aXQoV1RGTW92ZShjb21wbGV0aW9uQ2FsbGJhY2spKTsKIAogICAgICAgICBpZiAoIXdlYWtUaGlz
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggYjljODU1MjBi
ZjIwZDQ0NjBlZGIxZDk1NDgwMmU5NDgxMzI4MjJkNi4uZGIxN2RlYzNhOTc1MzFiNjYyY2RhMmQx
NjRiMGUwZTJiZGY4NTNjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCkBAIC0xNzI1LDcgKzE3MjUsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnVwZGF0ZUFj
dGl2ZVRleHRUcmFja0N1ZXMoY29uc3QgTWVkaWFUaW1lJiBtb3ZpZVRpbWUpCiAgICAgSU5GT19M
T0coTE9HSURFTlRJRklFUiwgIm5leHRJbnRlcmVzdGluZ1RpbWU6IiwgbmV4dEludGVyZXN0aW5n
VGltZSk7CiAKICAgICBpZiAobmV4dEludGVyZXN0aW5nVGltZS5pc1ZhbGlkKCkgJiYgbV9wbGF5
ZXIpIHsKLSAgICAgICAgbV9wbGF5ZXItPnBlcmZvcm1UYXNrQXRNZWRpYVRpbWUoW3RoaXMsIHdl
YWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldIHsKKyAgICAgICAgbV9wbGF5ZXItPnBlcmZvcm1U
YXNrQXRNZWRpYVRpbWUoW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dIHsKICAg
ICAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCkBAIC0y
OTQxLDcgKzI5NDEsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnByb2dyZXNzRXZlbnRUaW1l
ckZpcmVkKCkKICAgICBpZiAoIW1fcGxheWVyLT5zdXBwb3J0c1Byb2dyZXNzTW9uaXRvcmluZygp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3BsYXllci0+ZGlkTG9hZGluZ1Byb2dyZXNzKFt0
aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXShib29sIHByb2dyZXNzKSB7CisgICAg
bV9wbGF5ZXItPmRpZExvYWRpbmdQcm9ncmVzcyhbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsg
KnRoaXMgfV0oYm9vbCBwcm9ncmVzcykgewogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICBNb25vdG9uaWNUaW1lIHRpbWUgPSBNb25vdG9uaWNUaW1l
Ojpub3coKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291
cmNlLmNwcAppbmRleCAyMjlhM2Y3Y2NiZmNmN2I2NjI5YTRlOGMyNWU0MzEzYTBhMzAwMjQyLi4w
NTc2MGRkOTkyYTI5ZmMyYmNlMGRiMTI0YjM5N2JmN2MzZmZiOGM1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCkBAIC04MSw3ICs4MSw3
IEBAIGJvb2wgSW1hZ2VTb3VyY2U6OmVuc3VyZURlY29kZXJBdmFpbGFibGUoU2hhcmVkQnVmZmVy
KiBkYXRhKQogICAgIGlmICghaXNEZWNvZGVyQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgIG1fZGVjb2Rlci0+c2V0RW5jb2RlZERhdGFTdGF0dXNDaGFuZ2VDYWxsYmFj
ayhbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0gKGF1dG8gc3RhdHVzKSB7CisgICAgbV9k
ZWNvZGVyLT5zZXRFbmNvZGVkRGF0YVN0YXR1c0NoYW5nZUNhbGxiYWNrKFt3ZWFrVGhpcyA9IFdl
YWtQdHIgeyAqdGhpcyB9XSAoYXV0byBzdGF0dXMpIHsKICAgICAgICAgaWYgKHdlYWtUaGlzKQog
ICAgICAgICAgICAgd2Vha1RoaXMtPmVuY29kZWREYXRhU3RhdHVzQ2hhbmdlZChzdGF0dXMpOwog
ICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Mb2NhbFNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllci5tbQppbmRleCAwYmFlOWMxOGJkOTQyYjMwZWE5ZWY4NTgxNWI5MjVh
MTdiZTRjNGYzLi42OTlhZjkwYmRlMzhiNWFkZjA4NTY5MzYxZThmMjlmNDU3MjEyYTA4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9Mb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Mb2NhbFNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllci5tbQpAQCAtMzYxLDcgKzM2MSw3IEBAIHZvaWQgTG9jYWxTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXI6OmVucXVldWVTYW1wbGVCdWZmZXIoTWVkaWFTYW1wbGUmIHNhbXBsZSkKICNpZiAh
UkVMRUFTRV9MT0dfRElTQUJMRUQKIHZvaWQgTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6
Om9uSXJyZWd1bGFyRnJhbWVSYXRlTm90aWZpY2F0aW9uKE1vbm90b25pY1RpbWUgZnJhbWVUaW1l
LCBNb25vdG9uaWNUaW1lIGxhc3RGcmFtZVRpbWUpCiB7Ci0gICAgY2FsbE9uTWFpblRocmVhZChb
ZnJhbWVUaW1lID0gZnJhbWVUaW1lLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKSwgbGFzdEZy
YW1lVGltZSA9IGxhc3RGcmFtZVRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpLCBvYnNl
cnZlZEZyYW1lUmF0ZSA9IG1fZnJhbWVSYXRlTW9uaXRvci5vYnNlcnZlZEZyYW1lUmF0ZSgpLCBm
cmFtZUNvdW50ID0gbV9mcmFtZVJhdGVNb25pdG9yLmZyYW1lQ291bnQoKSwgd2Vha1RoaXMgPSBt
YWtlV2Vha1B0cih0aGlzKV0geworICAgIGNhbGxPbk1haW5UaHJlYWQoW2ZyYW1lVGltZSA9IGZy
YW1lVGltZS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCksIGxhc3RGcmFtZVRpbWUgPSBsYXN0
RnJhbWVUaW1lLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKSwgb2JzZXJ2ZWRGcmFtZVJhdGUg
PSBtX2ZyYW1lUmF0ZU1vbml0b3Iub2JzZXJ2ZWRGcmFtZVJhdGUoKSwgZnJhbWVDb3VudCA9IG1f
ZnJhbWVSYXRlTW9uaXRvci5mcmFtZUNvdW50KCksIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlz
IH1dIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgUkVMRUFTRV9MT0coV2ViUlRDLCAiTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmVu
cXVldWVTYW1wbGVCdWZmZXIgKCV7cHVibGljfXMpIGF0ICVmLCBwcmV2aW91cyBmcmFtZSB3YXMg
YXQgJWYsIG9ic2VydmVkIGZyYW1lIHJhdGUgaXMgJWYsIGRlbGF5IHNpbmNlIGxhc3QgZnJhbWUg
aXMgJWYgbXMsIGZyYW1lIGNvdW50IGlzICVsdSIsIHdlYWtUaGlzLT5tX2xvZ0lkZW50aWZpZXIu
dXRmOCgpLmRhdGEoKSwgZnJhbWVUaW1lLCBsYXN0RnJhbWVUaW1lLCBvYnNlcnZlZEZyYW1lUmF0
ZSwgKGZyYW1lVGltZSAtIGxhc3RGcmFtZVRpbWUpICogMTAwMCwgZnJhbWVDb3VudCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5tbQppbmRleCAxNGI5ODE5YTA5NTg5YjM4NGM5YTEzYjcwZDViZTAzZTI0
ODA5YTkyLi4wYTZkZmQwODQxYTMwNTkwOGQ5ZWJkYjAyYzJjODdhYzcwMTI0YzcwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMubW0KQEAgLTc4OCw3ICs3ODgsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWQXNzZXRGb3JVUkwoY29uc3QgVVJMJiB1cmwp
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBwbGF5ZXIoKS0+Z2V0UmF3Q29va2llcyh1
cmwsIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBvcHRpb25zID0gV1RGTW92
ZShvcHRpb25zKSwgdXJsXSAoYXV0byBjb29raWVzKSBtdXRhYmxlIHsKKyAgICBwbGF5ZXIoKS0+
Z2V0UmF3Q29va2llcyh1cmwsIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBv
cHRpb25zID0gV1RGTW92ZShvcHRpb25zKSwgdXJsXSAoYXV0byBjb29raWVzKSBtdXRhYmxlIHsK
ICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakMubW0KaW5kZXggMjU4NjNkMWVkYjM4MzllZTgzMGIyNmVmMDkw
YmNiNjNlMjFlMDdlYS4uZGQzYWY2NDE3N2E5MzM4OTJjYjc3ZmEwYzQzYmQyNjUxNTZkNDE0MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQpAQCAtMTM1LDcgKzEzNSw3IEBAIE1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDKE1lZGlhCiB7CiAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUik7CiAgICAgLy8g
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwcm9jZXNzTmV3VmlkZW9TYW1w
bGUgZXhwZWN0cyBhIHdlYWsgcG9pbnRlciB0byBiZSBjcmVhdGVkIGluIHRoZSBjb25zdHJ1Y3Rv
ci4KLSAgICBtX2JvdW5kc0NoYW5nZUxpc3RlbmVyID0gYWRvcHROUyhbW1dlYlJvb3RTYW1wbGVC
dWZmZXJCb3VuZHNDaGFuZ2VMaXN0ZW5lciBhbGxvY10gaW5pdFdpdGhDYWxsYmFjazpbdGhpcywg
d2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0geworICAgIG1fYm91bmRzQ2hhbmdlTGlzdGVu
ZXIgPSBhZG9wdE5TKFtbV2ViUm9vdFNhbXBsZUJ1ZmZlckJvdW5kc0NoYW5nZUxpc3RlbmVyIGFs
bG9jXSBpbml0V2l0aENhbGxiYWNrOlt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9
XSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IHJvb3RMYXllckJvdW5kc0RpZENoYW5nZSgpOwpAQCAtMjgzLDcgKzI4Myw3IEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwcm9jZXNzTmV3VmlkZW9TYW1wbGUo
TWVkaWFTYW1wbGUmIHNhCiAgICAgICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9jdXJyZW50Vmlk
ZW9TYW1wbGVMb2NrIH07CiAgICAgICAgICAgICBtX2N1cnJlbnRWaWRlb1NhbXBsZSA9ICZzYW1w
bGU7CiAgICAgICAgIH0KLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1RoaXMgPSBtYWtl
V2Vha1B0cih0aGlzKSwgaGFzQ2hhbmdlZE9yaWVudGF0aW9uXSgpIG11dGFibGUgeworICAgICAg
ICBjYWxsT25NYWluVGhyZWFkKFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBoYXNDaGFu
Z2VkT3JpZW50YXRpb25dKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQog
ICAgICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMzgwLDcgKzM4MCw3IEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjplbnN1cmVMYXllcnMoKQogICAgICAgICBt
X3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci0+c2V0UmVuZGVyUG9saWN5KFNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllcjo6UmVuZGVyUG9saWN5OjpJbW1lZGlhdGVseSk7CiAKICAgICBhdXRvIHNpemUg
PSBzbmFwcGVkSW50UmVjdChtX3BsYXllci0+cGxheWVyQ29udGVudEJveFJlY3QoKSkuc2l6ZSgp
OwotICAgIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLT5pbml0aWFsaXplKGhpZGVSb290TGF5
ZXIoKSwgc2l6ZSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIHNpemVdKGF1dG8gZGlk
U3VjY2VlZCkgeworICAgIG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLT5pbml0aWFsaXplKGhp
ZGVSb290TGF5ZXIoKSwgc2l6ZSwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHNpemVd
KGF1dG8gZGlkU3VjY2VlZCkgewogICAgICAgICBpZiAod2Vha1RoaXMpIHsKICNpZiAhUkVMRUFT
RV9MT0dfRElTQUJMRUQKICAgICAgICAgICAgIGlmICh3ZWFrVGhpcy0+bV9zYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZl
clByaXZhdGVBVkZPYmpDLm1tCmluZGV4IDcyMDIzYmVhZTU4MWJjYWE2OTE1ODgxN2NkNzg2ZWM5
MmQxZDJlNTQuLjExNDY3MzI1NGI2YzIyOGY1YmZiYjk1YzczNmFhNDUwMzIyMDU1OGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
Lm1tCkBAIC0zNjUsNyArMzY1LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6
ZGlkUGFyc2VJbml0aWFsaXphdGlvbkRhdGEoSW5pdGlhbGl6YXRpb25TZWdtZW4KICAgICBjbGVh
clRyYWNrcygpOwogCiAgICAgZm9yIChhdXRvIHZpZGVvVHJhY2tJbmZvIDogc2VnbWVudC52aWRl
b1RyYWNrcykgewotICAgICAgICB2aWRlb1RyYWNrSW5mby50cmFjay0+c2V0U2VsZWN0ZWRDaGFu
Z2VkQ2FsbGJhY2soW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIHRoaXNdIChWaWRlb1Ry
YWNrUHJpdmF0ZSYgdHJhY2ssIGJvb2wgc2VsZWN0ZWQpIHsKKyAgICAgICAgdmlkZW9UcmFja0lu
Zm8udHJhY2stPnNldFNlbGVjdGVkQ2hhbmdlZENhbGxiYWNrKFt3ZWFrVGhpcyA9IFdlYWtQdHIg
eyAqdGhpcyB9LCB0aGlzXSAoVmlkZW9UcmFja1ByaXZhdGUmIHRyYWNrLCBib29sIHNlbGVjdGVk
KSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgICAgIHJldHVybjsK
IApAQCAtMzg3LDcgKzM4Nyw3IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRp
ZFBhcnNlSW5pdGlhbGl6YXRpb25EYXRhKEluaXRpYWxpemF0aW9uU2VnbWVuCiAgICAgfQogCiAg
ICAgZm9yIChhdXRvIGF1ZGlvVHJhY2tJbmZvIDogc2VnbWVudC5hdWRpb1RyYWNrcykgewotICAg
ICAgICBhdWRpb1RyYWNrSW5mby50cmFjay0+c2V0RW5hYmxlZENoYW5nZWRDYWxsYmFjayhbd2Vh
a1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgdGhpc10gKEF1ZGlvVHJhY2tQcml2YXRlJiB0cmFj
aywgYm9vbCBlbmFibGVkKSB7CisgICAgICAgIGF1ZGlvVHJhY2tJbmZvLnRyYWNrLT5zZXRFbmFi
bGVkQ2hhbmdlZENhbGxiYWNrKFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB0aGlzXSAo
QXVkaW9UcmFja1ByaXZhdGUmIHRyYWNrLCBib29sIGVuYWJsZWQpIHsKICAgICAgICAgICAgIGlm
ICghd2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCkBAIC01NzMsMjEgKzU3Mywy
MSBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjphcHBlbmQoUmVmPFNoYXJlZEJ1
ZmZlcj4mJiBkYXRhKQogICAgIGlmIChtX2NsaWVudCkKICAgICAgICAgbV9jbGllbnQtPnNvdXJj
ZUJ1ZmZlclByaXZhdGVSZXBvcnRFeHRyYU1lbW9yeUNvc3QodG90YWxUcmFja0J1ZmZlclNpemVJ
bkJ5dGVzKCkpOwogCi0gICAgbV9wYXJzZXItPnNldERpZFBhcnNlSW5pdGlhbGl6YXRpb25EYXRh
Q2FsbGJhY2soW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIGFib3J0Q2FsbGVkID0gbV9h
Ym9ydENhbGxlZF0gKEluaXRpYWxpemF0aW9uU2VnbWVudCYmIHNlZ21lbnQpIHsKKyAgICBtX3Bh
cnNlci0+c2V0RGlkUGFyc2VJbml0aWFsaXphdGlvbkRhdGFDYWxsYmFjayhbd2Vha1RoaXMgPSBX
ZWFrUHRyIHsgKnRoaXMgfSwgYWJvcnRDYWxsZWQgPSBtX2Fib3J0Q2FsbGVkXSAoSW5pdGlhbGl6
YXRpb25TZWdtZW50JiYgc2VnbWVudCkgewogICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OwogICAgICAgICBpZiAoIXdlYWtUaGlzIHx8IGFib3J0Q2FsbGVkICE9IHdlYWtUaGlzLT5tX2Fi
b3J0Q2FsbGVkKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB3ZWFrVGhpcy0+ZGlkUGFy
c2VJbml0aWFsaXphdGlvbkRhdGEoV1RGTW92ZShzZWdtZW50KSk7CiAgICAgfSk7CiAKLSAgICBt
X3BhcnNlci0+c2V0RGlkRW5jb3VudGVyRXJyb3JEdXJpbmdQYXJzaW5nQ2FsbGJhY2soW3dlYWtU
aGlzID0gbWFrZVdlYWtQdHIodGhpcyksIGFib3J0Q2FsbGVkID0gbV9hYm9ydENhbGxlZF0gKGlu
dDMyX3QgZXJyb3JDb2RlKSB7CisgICAgbV9wYXJzZXItPnNldERpZEVuY291bnRlckVycm9yRHVy
aW5nUGFyc2luZ0NhbGxiYWNrKFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBhYm9ydENh
bGxlZCA9IG1fYWJvcnRDYWxsZWRdIChpbnQzMl90IGVycm9yQ29kZSkgewogICAgICAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOwogICAgICAgICBpZiAoIXdlYWtUaGlzIHx8IGFib3J0Q2FsbGVk
ICE9IHdlYWtUaGlzLT5tX2Fib3J0Q2FsbGVkKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB3ZWFrVGhpcy0+ZGlkRW5jb3VudGVyRXJyb3JEdXJpbmdQYXJzaW5nKGVycm9yQ29kZSk7CiAg
ICAgfSk7CiAKLSAgICBtX3BhcnNlci0+c2V0RGlkUHJvdmlkZU1lZGlhRGF0YUNhbGxiYWNrKFt3
ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBhYm9ydENhbGxlZCA9IG1fYWJvcnRDYWxsZWRd
IChSZWY8TWVkaWFTYW1wbGU+JiYgc2FtcGxlLCB1aW50NjRfdCB0cmFja0lkLCBjb25zdCBTdHJp
bmcmIG1lZGlhVHlwZSkgeworICAgIG1fcGFyc2VyLT5zZXREaWRQcm92aWRlTWVkaWFEYXRhQ2Fs
bGJhY2soW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGFib3J0Q2FsbGVkID0gbV9hYm9y
dENhbGxlZF0gKFJlZjxNZWRpYVNhbXBsZT4mJiBzYW1wbGUsIHVpbnQ2NF90IHRyYWNrSWQsIGNv
bnN0IFN0cmluZyYgbWVkaWFUeXBlKSB7CiAgICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CiAgICAgICAgIGlmICghd2Vha1RoaXMgfHwgYWJvcnRDYWxsZWQgIT0gd2Vha1RoaXMtPm1fYWJv
cnRDYWxsZWQpCiAgICAgICAgICAgICByZXR1cm47CkBAIC01OTUsNyArNTk1LDcgQEAgdm9pZCBT
b3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6YXBwZW5kKFJlZjxTaGFyZWRCdWZmZXI+JiYgZGF0
YSkKICAgICB9KTsKIAogICAgIG1fYWJvcnRTZW1hcGhvcmUgPSBCb3g8U2VtYXBob3JlPjo6Y3Jl
YXRlKDApOwotICAgIG1fcGFyc2VyLT5zZXRXaWxsUHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5p
dGlhbGl6YXRpb25EYXRhRm9yVHJhY2tJRENhbGxiYWNrKFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRy
KHRoaXMpLCBhYm9ydFNlbWFwaG9yZSA9IG1fYWJvcnRTZW1hcGhvcmUsIGFib3J0Q2FsbGVkID0g
bV9hYm9ydENhbGxlZF0gKHVpbnQ2NF90IHRyYWNrSUQpIG11dGFibGUgeworICAgIG1fcGFyc2Vy
LT5zZXRXaWxsUHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhRm9yVHJh
Y2tJRENhbGxiYWNrKFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBhYm9ydFNlbWFwaG9y
ZSA9IG1fYWJvcnRTZW1hcGhvcmUsIGFib3J0Q2FsbGVkID0gbV9hYm9ydENhbGxlZF0gKHVpbnQ2
NF90IHRyYWNrSUQpIG11dGFibGUgewogICAgICAgICAvLyBXZSBtdXN0IGNhbGwgc3luY2hyb25v
dXNseSB0byB0aGUgbWFpbiB0aHJlYWQsIGFzIHRoZSBBVlN0cmVhbVNlc3Npb24gbXVzdCBiZSBh
c3NvY2lhdGVkCiAgICAgICAgIC8vIHdpdGggdGhlIHN0cmVhbURhdGFQYXJzZXIgYmVmb3JlIHRo
ZSBkZWxlZ2F0ZSBtZXRob2QgcmV0dXJucy4KICAgICAgICAgQm94PEJpbmFyeVNlbWFwaG9yZT4g
cmVzcG9uZGVkU2VtYXBob3JlID0gQm94PEJpbmFyeVNlbWFwaG9yZT46OmNyZWF0ZSgpOwpAQCAt
NjE2LDcgKzYxNiw3IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmFwcGVuZChS
ZWY8U2hhcmVkQnVmZmVyPiYmIGRhdGEpCiAgICAgICAgIH0KICAgICB9KTsKIAotICAgIG1fcGFy
c2VyLT5zZXREaWRQcm92aWRlQ29udGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFGb3JU
cmFja0lEQ2FsbGJhY2soW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIGFib3J0U2VtYXBo
b3JlID0gbV9hYm9ydFNlbWFwaG9yZSwgYWJvcnRDYWxsZWQgPSBtX2Fib3J0Q2FsbGVkXShSZWY8
VWludDhBcnJheT4mJiBpbml0RGF0YSwgdWludDY0X3QgdHJhY2tJRCkgbXV0YWJsZSB7CisgICAg
bV9wYXJzZXItPnNldERpZFByb3ZpZGVDb250ZW50S2V5UmVxdWVzdEluaXRpYWxpemF0aW9uRGF0
YUZvclRyYWNrSURDYWxsYmFjayhbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgYWJvcnRT
ZW1hcGhvcmUgPSBtX2Fib3J0U2VtYXBob3JlLCBhYm9ydENhbGxlZCA9IG1fYWJvcnRDYWxsZWRd
KFJlZjxVaW50OEFycmF5PiYmIGluaXREYXRhLCB1aW50NjRfdCB0cmFja0lEKSBtdXRhYmxlIHsK
ICAgICAgICAgLy8gQ2FsbGVkIG9uIHRoZSBkYXRhIHBhcnNlciBxdWV1ZS4KICAgICAgICAgQm94
PEJpbmFyeVNlbWFwaG9yZT4gaGFzU2Vzc2lvblNlbWFwaG9yZSA9IEJveDxCaW5hcnlTZW1hcGhv
cmU+OjpjcmVhdGUoKTsKICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1RoaXMgPSBXVEZN
b3ZlKHdlYWtUaGlzKSwgYWJvcnRDYWxsZWQsIGluaXREYXRhID0gV1RGTW92ZShpbml0RGF0YSks
IHRyYWNrSUQsIGhhc1Nlc3Npb25TZW1hcGhvcmVdICgpIG11dGFibGUgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCA3MTVjNzg4ODNhYmY1
OGVlYTJkNzk5NzY0NDkwOTY2OGViZThjM2UxLi5hOGRlNjk4YjBmOWYxZDg5YTdhYWY2YTM4ODJl
MjE2MDcxZWYzMmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyLmNwcApAQCAtMTExNyw3ICsxMTE3LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXI6OnZpZGVvU2lua0NhcHNDaGFuZ2VkKEdzdFBhZCogdmlkZW9TaW5rUGFkKQogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt3ZWFr
VGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCB0aGlzLCBjYXBzID0gV1RGTW92ZShjYXBzKV0gewor
ICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMg
fSwgdGhpcywgY2FwcyA9IFdURk1vdmUoY2FwcyldIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgdXBkYXRlVmlkZW9TaXplQW5kT3JpZW50YXRp
b25Gcm9tQ2FwcyhjYXBzLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNv
cmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQppbmRleCAzNzJlYTBmYmVlOGQ1ZWU4Nzc4YzJjZGU4
OWQ4MWM1ZTQ0ZWQ2ODc2Li45NWRhYzQxNjc4N2ZhZjM3MjQ2ZTQ5YTc1NjFjNmQ4MmIwNjIwNWZi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29h
L01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNv
Y29hLm1tCkBAIC00NTMsNyArNDUzLDcgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
cjo6c3RvcFJlY29yZGluZygpCiAKICAgICBtX2lzU3RvcHBpbmcgPSB0cnVlOwogICAgIC8vIFdl
IGhvcCB0byB0aGUgbWFpbiB0aHJlYWQgc2luY2UgZmluaXNoaW5nIHRoZSB2aWRlbyBjb21wcmVz
c29yIG1pZ2h0IHRyaWdnZXIgc3RhcnRpbmcgdGhlIHdyaXRlciBhc3luY2hyb25vdXNseS4KLSAg
ICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXSgp
IG11dGFibGUgeworICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0
ciB7ICp0aGlzIH1dKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAg
ICAgICByZXR1cm47CiAKQEAgLTUwNyw3ICs1MDcsNyBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2
YXRlV3JpdGVyOjpmZXRjaERhdGEoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8U2hhcmVk
QgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgZmx1c2hDb21wcmVzc2VkU2FtcGxlQnVm
ZmVycyhbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0oKSBtdXRhYmxlIHsKKyAgICBmbHVz
aENvbXByZXNzZWRTYW1wbGVCdWZmZXJzKFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XSgp
IG11dGFibGUgewogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9B
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29j
b2EuY3BwCmluZGV4IDIyMDBlZjFiOGM3MmIzOGI2NmVkNTczM2RjOTFjOGVkMjdjMjg1MjQuLjA2
MDk1YTI3ZDk5N2ZmOGY5YjNhOWU3OWYxYmUwZGI1MGYwMzgyYWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyQ29jb2EuY3BwCkBAIC00NCw3
ICs0NCw3IEBAIHZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2NvYTo6c3RhcnQo
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiCiB7CiAgICAgY2xlYXIoKTsKIAotICAg
IEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6c2luZ2xldG9uKCkucmV0cmlldmVG
b3JtYXREZXNjcmlwdGlvbihbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgY2FsbGJhY2sg
PSBXVEZNb3ZlKGNhbGxiYWNrKV0oYXV0byogZm9ybWF0RGVzY3JpcHRpb24pIG11dGFibGUgewor
ICAgIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6c2luZ2xldG9uKCkucmV0cmll
dmVGb3JtYXREZXNjcmlwdGlvbihbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgY2FsbGJh
Y2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYXV0byogZm9ybWF0RGVzY3JpcHRpb24pIG11dGFibGUg
ewogICAgICAgICBpZiAod2Vha1RoaXMgJiYgZm9ybWF0RGVzY3JpcHRpb24pCiAgICAgICAgICAg
ICB3ZWFrVGhpcy0+bV9vdXRwdXREZXNjcmlwdGlvbiA9IG1ha2VVbmlxdWU8Q0FBdWRpb1N0cmVh
bURlc2NyaXB0aW9uPigqZm9ybWF0RGVzY3JpcHRpb24pOwogICAgICAgICBjYWxsYmFjaygpOwpA
QCAtMTA5LDcgKzEwOSw3IEBAIHZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJDb2Nv
YTo6cHVzaFNhbXBsZXMoY29uc3QgTWVkaWFUaW1lJiBzYW1wbGVUaW1lCiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCB3ZWFr
VGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBvbGRTb3VyY2UgPSBtX2RhdGFTb3VyY2UsIG5ld1Nv
dXJjZSA9IGRhdGFTb3VyY2VdKCkgbXV0YWJsZSB7CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQo
W3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIG9sZFNvdXJjZSA9IG1fZGF0YVNv
dXJjZSwgbmV3U291cmNlID0gZGF0YVNvdXJjZV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlm
ICghd2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVBsYXllck1lZGlh
U291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9j
a01lZGlhUGxheWVyTWVkaWFTb3VyY2UuY3BwCmluZGV4IGNmNjEwYmFkZTBhYjdhNjIxYTYzNjY0
YjhiMTkzYTNlNDllMzY5MjguLmU5OWEzYzg2MTNhZGM2YjdiMTkwMTJiODAxZjExZmM5ZTMwN2Yz
M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2Uv
TW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2UuY3BwCkBAIC0x
MjMsNyArMTIzLDcgQEAgdm9pZCBNb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZTo6Y2FuY2VsTG9h
ZCgpCiB2b2lkIE1vY2tNZWRpYVBsYXllck1lZGlhU291cmNlOjpwbGF5KCkKIHsKICAgICBtX3Bs
YXlpbmcgPSAxOwotICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdl
YWtQdHIodGhpcyldIHsKKyAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCB3ZWFrVGhpcyA9IFdl
YWtQdHIgeyAqdGhpcyB9XSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIGFkdmFuY2VDdXJyZW50VGltZSgpOwpAQCAtMjIyLDcgKzIyMiw3IEBA
IHZvaWQgTW9ja01lZGlhUGxheWVyTWVkaWFTb3VyY2U6OnNlZWtXaXRoVG9sZXJhbmNlKGNvbnN0
IE1lZGlhVGltZSYgdGltZSwgY29uc3QKICAgICAgICAgbV9wbGF5ZXItPnRpbWVDaGFuZ2VkKCk7
CiAKICAgICAgICAgaWYgKG1fcGxheWluZykKLSAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQo
W3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldIHsKKyAgICAgICAgICAgIGNhbGxP
bk1haW5UaHJlYWQoW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dIHsKICAgICAg
ICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgICAgICAgICAgYWR2YW5jZUN1cnJlbnRUaW1lKCk7CkBAIC0yODYsNyArMjg2LDcgQEAg
dm9pZCBNb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZTo6c2Vla0NvbXBsZXRlZCgpCiAgICAgbV9w
bGF5ZXItPnRpbWVDaGFuZ2VkKCk7CiAKICAgICBpZiAobV9wbGF5aW5nKQotICAgICAgICBjYWxs
T25NYWluVGhyZWFkKFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXSB7CisgICAg
ICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1d
IHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICAgICAgYWR2YW5jZUN1cnJlbnRUaW1lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5jcHAKaW5kZXggZTc2NTllYjcxZGQ3N2MwNTZiMmJiMDQyOTRkMWI3OGFkZDQ0ZjkyMy4u
OGM3Y2E5ZTliZjFhODMwNzk3ZTZjNTIzYjYyMjUwNmE3YmE0OTRjMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtNTQyOSw3ICs1NDI5LDcgQEAgdm9pZCBJbnRlcm5hbHM6
OmdyYWJOZXh0TWVkaWFTdHJlYW1UcmFja0ZyYW1lKFRyYWNrRnJhbWVQcm9taXNlJiYgcHJvbWlz
ZSkKIAogdm9pZCBJbnRlcm5hbHM6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJiBz
YW1wbGUpCiB7Ci0gICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vh
a1B0cih0aGlzKSwgc2FtcGxlID0gUmVmIHsgc2FtcGxlIH1dIHsKKyAgICBjYWxsT25NYWluVGhy
ZWFkKFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBzYW1wbGUgPSBSZWYgeyBz
YW1wbGUgfV0gewogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICBtX3RyYWNrVmlkZW9TYW1wbGVDb3VudCsrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9TZXJ2aWNlV29ya2VySW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvU2VydmljZVdvcmtlckludGVybmFscy5jcHAKaW5kZXggYzIyNjA2MDE5MGZjMmE5
MzBmNTAyNjIzNzk1MGNiYTZiYjBiMzViMy4uOTc2Mzg3YzA2MWZjOTlmZjM0ODFlMGEwYjFkZDVh
YjY3MTEzNmVhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9TZXJ2aWNlV29y
a2VySW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1NlcnZpY2VXb3Jr
ZXJJbnRlcm5hbHMuY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIHZvaWQgU2VydmljZVdvcmtlckludGVy
bmFsczo6c2NoZWR1bGVQdXNoRXZlbnQoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBSZWZQdHI8RGVm
CiAgICAgICAgIGF1dG8gdXRmOCA9IG1lc3NhZ2UudXRmOCgpOwogICAgICAgICBkYXRhID0gVmVj
dG9yPHVpbnQ4X3Q+IHsgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4odXRmOC5kYXRh
KCkpLCB1dGY4Lmxlbmd0aCgpfTsKICAgICB9Ci0gICAgY2FsbE9uTWFpblRocmVhZChbaWRlbnRp
ZmllciA9IG1faWRlbnRpZmllciwgZGF0YSA9IFdURk1vdmUoZGF0YSksIHdlYWtUaGlzID0gbWFr
ZVdlYWtQdHIodGhpcyksIGNvdW50ZXJdKCkgbXV0YWJsZSB7CisgICAgY2FsbE9uTWFpblRocmVh
ZChbaWRlbnRpZmllciA9IG1faWRlbnRpZmllciwgZGF0YSA9IFdURk1vdmUoZGF0YSksIHdlYWtU
aGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGNvdW50ZXJdKCkgbXV0YWJsZSB7CiAgICAgICAgIFNX
Q29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLmZpcmVQdXNoRXZlbnQoaWRlbnRpZmllciwgV1RG
TW92ZShkYXRhKSwgW2lkZW50aWZpZXIsIHdlYWtUaGlzID0gV1RGTW92ZSh3ZWFrVGhpcyksIGNv
dW50ZXJdKGJvb2wgcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmIChhdXRvKiBwcm94
eSA9IFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLndvcmtlckJ5SUQoaWRlbnRpZmllcikp
IHsKICAgICAgICAgICAgICAgICBwcm94eS0+dGhyZWFkKCkucnVuTG9vcCgpLnBvc3RUYXNrRm9y
TW9kZShbd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwgY291bnRlciwgcmVzdWx0XShhdXRv
JikgewpAQCAtMTQ3LDcgKzE0Nyw3IEBAIHZvaWQgU2VydmljZVdvcmtlckludGVybmFsczo6bGFz
dE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQoUmVmPERlZmVycmVkUHJvbWlzZT4mCiB7CiAgICAg
QVNTRVJUKCFtX2xhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkUHJvbWlzZSk7CiAgICAgbV9s
YXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZFByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpOwot
ICAgIGNhbGxPbk1haW5UaHJlYWQoW2lkZW50aWZpZXIgPSBtX2lkZW50aWZpZXIsIHdlYWtUaGlz
ID0gbWFrZVdlYWtQdHIodGhpcyldKCkgbXV0YWJsZSB7CisgICAgY2FsbE9uTWFpblRocmVhZChb
aWRlbnRpZmllciA9IG1faWRlbnRpZmllciwgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0o
KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKGF1dG8qIHByb3h5ID0gU1dDb250ZXh0TWFuYWdlcjo6
c2luZ2xldG9uKCkud29ya2VyQnlJRChpZGVudGlmaWVyKSkgewogICAgICAgICAgICAgcHJveHkt
PnRocmVhZCgpLnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW3dlYWtUaGlzID0gV1RGTW92ZSh3
ZWFrVGhpcyksIGFwcEluaXRpYXRlZCA9IHByb3h5LT5sYXN0TmF2aWdhdGlvbldhc0FwcEluaXRp
YXRlZCgpXShhdXRvJikgewogICAgICAgICAgICAgICAgIGlmICghd2Vha1RoaXMgfHwgIXdlYWtU
aGlzLT5tX2xhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkUHJvbWlzZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJl
YWQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdv
cmtlclRocmVhZC5jcHAKaW5kZXggZDg0YzU5NmJiOGY5OWMxNjU0NjkwYjk2NTk4MGM5YTdiZTcw
NjlkNC4uY2ZiYmUwZGJhNTdiOWExY2IyYzM5NDdiZDMwNjRlYzg2ZDlkODkwZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRo
cmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vy
dmljZVdvcmtlclRocmVhZC5jcHAKQEAgLTE0Miw3ICsxNDIsNyBAQCBzdGF0aWMgdm9pZCBmaXJl
TWVzc2FnZUV2ZW50KFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSYgc2NvcGUsIE1lc3NhZ2VXaXRo
TWVzc2FnZQogdm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkOjpxdWV1ZVRhc2tUb1Bvc3RNZXNzYWdl
KE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYgbWVzc2FnZSwgU2VydmljZVdvcmtlck9yQ2xpZW50
RGF0YSYmIHNvdXJjZURhdGEpCiB7CiAgICAgUmVmIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSA9
IGRvd25jYXN0PFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT4oKmdsb2JhbFNjb3BlKCkpOwotICAg
IHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS0+ZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3Vy
Y2U6OkRPTU1hbmlwdWxhdGlvbiwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIHNlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZSwgbWVzc2FnZSA9IFdURk1vdmUobWVzc2FnZSksIHNvdXJjZURh
dGEgPSBXVEZNb3ZlKHNvdXJjZURhdGEpXSgpIG11dGFibGUgeworICAgIHNlcnZpY2VXb3JrZXJH
bG9iYWxTY29wZS0+ZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3VyY2U6OkRPTU1hbmlwdWxh
dGlvbiwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHNlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZSwgbWVzc2FnZSA9IFdURk1vdmUobWVzc2FnZSksIHNvdXJjZURhdGEgPSBXVEZNb3ZlKHNv
dXJjZURhdGEpXSgpIG11dGFibGUgewogICAgICAgICBVUkwgc291cmNlVVJMOwogICAgICAgICBF
eHRlbmRhYmxlTWVzc2FnZUV2ZW50U291cmNlIHNvdXJjZTsKICAgICAgICAgaWYgKHN0ZDo6aG9s
ZHNfYWx0ZXJuYXRpdmU8U2VydmljZVdvcmtlckNsaWVudERhdGE+KHNvdXJjZURhdGEpKSB7CkBA
IC0xNzEsNyArMTcxLDcgQEAgdm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkOjpxdWV1ZVRhc2tUb1Bv
c3RNZXNzYWdlKE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYgbWVzc2EKIHZvaWQgU2VydmljZVdv
cmtlclRocmVhZDo6cXVldWVUYXNrVG9GaXJlSW5zdGFsbEV2ZW50KCkKIHsKICAgICBSZWYgc2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlID0gZG93bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
PigqZ2xvYmFsU2NvcGUoKSk7Ci0gICAgc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLT5ldmVudExv
b3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6RE9NTWFuaXB1bGF0aW9uLCBbd2Vha1RoaXMgPSBt
YWtlV2Vha1B0cih0aGlzKSwgc2VydmljZVdvcmtlckdsb2JhbFNjb3BlXSgpIG11dGFibGUgewor
ICAgIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS0+ZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tT
b3VyY2U6OkRPTU1hbmlwdWxhdGlvbiwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHNl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZV0oKSBtdXRhYmxlIHsKICAgICAgICAgUkVMRUFTRV9MT0co
U2VydmljZVdvcmtlciwgIlNlcnZpY2VXb3JrZXJUaHJlYWQ6OnF1ZXVlVGFza1RvRmlyZUluc3Rh
bGxFdmVudCBmaXJpbmcgZXZlbnQgZm9yIHdvcmtlciAlbGx1Iiwgc2VydmljZVdvcmtlckdsb2Jh
bFNjb3BlLT50aHJlYWQoKS5pZGVudGlmaWVyKCkudG9VSW50NjQoKSk7CiAKICAgICAgICAgYXV0
byBpbnN0YWxsRXZlbnQgPSBFeHRlbmRhYmxlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuaW5z
dGFsbEV2ZW50LCB7IH0sIEV4dGVuZGFibGVFdmVudDo6SXNUcnVzdGVkOjpZZXMpOwpAQCAtMTk3
LDcgKzE5Nyw3IEBAIHZvaWQgU2VydmljZVdvcmtlclRocmVhZDo6cXVldWVUYXNrVG9GaXJlSW5z
dGFsbEV2ZW50KCkKIHZvaWQgU2VydmljZVdvcmtlclRocmVhZDo6cXVldWVUYXNrVG9GaXJlQWN0
aXZhdGVFdmVudCgpCiB7CiAgICAgUmVmIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSA9IGRvd25j
YXN0PFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT4oKmdsb2JhbFNjb3BlKCkpOwotICAgIHNlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZS0+ZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3VyY2U6OkRP
TU1hbmlwdWxhdGlvbiwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIHNlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZV0oKSBtdXRhYmxlIHsKKyAgICBzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUt
PmV2ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpET01NYW5pcHVsYXRpb24sIFt3ZWFr
VGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVdKCkgbXV0
YWJsZSB7CiAgICAgICAgIFJFTEVBU0VfTE9HKFNlcnZpY2VXb3JrZXIsICJTZXJ2aWNlV29ya2Vy
VGhyZWFkOjpxdWV1ZVRhc2tUb0ZpcmVBY3RpdmF0ZUV2ZW50IGZpcmluZyBldmVudCBmb3Igd29y
a2VyICVsbHUiLCBzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUtPnRocmVhZCgpLmlkZW50aWZpZXIo
KS50b1VJbnQ2NCgpKTsKIAogICAgICAgICBhdXRvIGFjdGl2YXRlRXZlbnQgPSBFeHRlbmRhYmxl
RXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuYWN0aXZhdGVFdmVudCwgeyB9LCBFeHRlbmRhYmxl
RXZlbnQ6OklzVHJ1c3RlZDo6WWVzKTsKQEAgLTIxNiw3ICsyMTYsNyBAQCB2b2lkIFNlcnZpY2VX
b3JrZXJUaHJlYWQ6OnF1ZXVlVGFza1RvRmlyZUFjdGl2YXRlRXZlbnQoKQogdm9pZCBTZXJ2aWNl
V29ya2VyVGhyZWFkOjpxdWV1ZVRhc2tUb0ZpcmVQdXNoRXZlbnQoc3RkOjpvcHRpb25hbDxWZWN0
b3I8dWludDhfdD4+JiYgZGF0YSwgRnVuY3Rpb248dm9pZChib29sKT4mJiBjYWxsYmFjaykKIHsK
ICAgICBhdXRvJiBzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgPSBkb3duY2FzdDxTZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGU+KCpnbG9iYWxTY29wZSgpKTsKLSAgICBzZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGUuZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3VyY2U6OkRPTU1hbmlwdWxhdGlvbiwg
W3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSA9
IFJlZiB7IHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSB9LCBkYXRhID0gV1RGTW92ZShkYXRhKSwg
Y2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oKSBtdXRhYmxlIHsKKyAgICBzZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGUuZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3VyY2U6OkRPTU1hbmlw
dWxhdGlvbiwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHNlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZSA9IFJlZiB7IHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSB9LCBkYXRhID0gV1RGTW92
ZShkYXRhKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oKSBtdXRhYmxlIHsKICAgICAg
ICAgUkVMRUFTRV9MT0coU2VydmljZVdvcmtlciwgIlNlcnZpY2VXb3JrZXJUaHJlYWQ6OnF1ZXVl
VGFza1RvRmlyZVB1c2hFdmVudCBmaXJpbmcgZXZlbnQgZm9yIHdvcmtlciAlIiBQUkl1NjQsIHNl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZS0+dGhyZWFkKCkuaWRlbnRpZmllcigpLnRvVUludDY0KCkp
OwogCiAgICAgICAgIGF1dG8gcHVzaEV2ZW50ID0gUHVzaEV2ZW50OjpjcmVhdGUoZXZlbnROYW1l
cygpLnB1c2hFdmVudCwgeyB9LCBXVEZNb3ZlKGRhdGEpLCBFeHRlbmRhYmxlRXZlbnQ6OklzVHJ1
c3RlZDo6WWVzKTsKQEAgLTI0Niw3ICsyNDYsNyBAQCB2b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWQ6
OnN0YXJ0KEZ1bmN0aW9uPHZvaWQoY29uc3QgU3RyaW5nJiwgYm9vbCk+JiYgY2FsbGJhY2spCiAg
ICAgbV9zdGF0ZSA9IFN0YXRlOjpTdGFydGluZzsKICAgICBzdGFydEhlYXJ0QmVhdFRpbWVyKCk7
CiAKLSAgICBXb3JrZXJUaHJlYWQ6OnN0YXJ0KFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2sp
LCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXShhdXRvJiBlcnJvck1lc3NhZ2UpIG11dGFi
bGUgeworICAgIFdvcmtlclRocmVhZDo6c3RhcnQoW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFj
ayksIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dKGF1dG8mIGVycm9yTWVzc2FnZSkgbXV0
YWJsZSB7CiAgICAgICAgIGJvb2wgZG9lc0hhbmRsZUZldGNoID0gdHJ1ZTsKICAgICAgICAgaWYg
KHdlYWtUaGlzKSB7CiAgICAgICAgICAgICB3ZWFrVGhpcy0+ZmluaXNoZWRTdGFydGluZygpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNw
cAppbmRleCBmNTAyMDMxMGE4ZjA0OTFlNTQ4YmZiNTJmZWQwMWZkODkyNWQ2OGJlLi5jYTk5YTcw
NDkzYmMzN2EwNDM4YzE1NWE0YzQ5NDNlMmVkZjk2NmZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcApAQCAtMTY4LDcgKzE2OCw3
IEBAIHZvaWQgU1dTZXJ2ZXI6OmFkZFJlZ2lzdHJhdGlvbkZyb21TdG9yZShTZXJ2aWNlV29ya2Vy
Q29udGV4dERhdGEmJiBkYXRhKQogICAgIEFTU0VSVCghbV9zY29wZVRvUmVnaXN0cmF0aW9uTWFw
LmNvbnRhaW5zKGRhdGEucmVnaXN0cmF0aW9uLmtleSkpOwogCiAgICAgYXV0byByZWdpc3RyYWJs
ZURvbWFpbiA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluKGRhdGEuc2NyaXB0VVJMKTsKLSAg
ICB2YWxpZGF0ZVJlZ2lzdHJhdGlvbkRvbWFpbihyZWdpc3RyYWJsZURvbWFpbiwgU2VydmljZVdv
cmtlckpvYlR5cGU6OlJlZ2lzdGVyLCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlz
KSwgZGF0YSA9IFdURk1vdmUoZGF0YSldIChib29sIGlzVmFsaWQpIG11dGFibGUgeworICAgIHZh
bGlkYXRlUmVnaXN0cmF0aW9uRG9tYWluKHJlZ2lzdHJhYmxlRG9tYWluLCBTZXJ2aWNlV29ya2Vy
Sm9iVHlwZTo6UmVnaXN0ZXIsIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBk
YXRhID0gV1RGTW92ZShkYXRhKV0gKGJvb2wgaXNWYWxpZCkgbXV0YWJsZSB7CiAgICAgICAgIGlm
ICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGlmIChtX2hhc1NlcnZp
Y2VXb3JrZXJFbnRpdGxlbWVudCB8fCBpc1ZhbGlkKSB7CkBAIC0zNjgsNyArMzY4LDcgQEAgdm9p
ZCBTV1NlcnZlcjo6dmFsaWRhdGVSZWdpc3RyYXRpb25Eb21haW4oV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4gZG9tYWluLCBTZXIKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fYXBw
Qm91bmREb21haW5zQ2FsbGJhY2soW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyks
IGRvbWFpbiA9IFdURk1vdmUoZG9tYWluKSwgdHlwZSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byYmIGFwcEJvdW5kRG9tYWlucykgbXV0YWJsZSB7
CisgICAgbV9hcHBCb3VuZERvbWFpbnNDYWxsYmFjayhbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRy
IHsgKnRoaXMgfSwgZG9tYWluID0gV1RGTW92ZShkb21haW4pLCB0eXBlLCBjb21wbGV0aW9uSGFu
ZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvJiYgYXBwQm91bmREb21haW5z
KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgbV9oYXNSZWNlaXZlZEFwcEJvdW5kRG9tYWlucyA9IHRydWU7CkBAIC0zODIsNyAr
MzgyLDcgQEAgdm9pZCBTV1NlcnZlcjo6c2NoZWR1bGVKb2IoU2VydmljZVdvcmtlckpvYkRhdGEm
JiBqb2JEYXRhKQogewogICAgIEFTU0VSVChtX2Nvbm5lY3Rpb25zLmNvbnRhaW5zKGpvYkRhdGEu
Y29ubmVjdGlvbklkZW50aWZpZXIoKSkgfHwgam9iRGF0YS5jb25uZWN0aW9uSWRlbnRpZmllcigp
ID09IFByb2Nlc3M6OmlkZW50aWZpZXIoKSk7CiAKLSAgICB2YWxpZGF0ZVJlZ2lzdHJhdGlvbkRv
bWFpbihXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbihqb2JEYXRhLnNjcmlwdFVSTCksIGpvYkRh
dGEudHlwZSwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIGpvYkRhdGEgPSBX
VEZNb3ZlKGpvYkRhdGEpXSAoYm9vbCBpc1ZhbGlkKSBtdXRhYmxlIHsKKyAgICB2YWxpZGF0ZVJl
Z2lzdHJhdGlvbkRvbWFpbihXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbihqb2JEYXRhLnNjcmlw
dFVSTCksIGpvYkRhdGEudHlwZSwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0s
IGpvYkRhdGEgPSBXVEZNb3ZlKGpvYkRhdGEpXSAoYm9vbCBpc1ZhbGlkKSBtdXRhYmxlIHsKICAg
ICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgaWYgKG1f
aGFzU2VydmljZVdvcmtlckVudGl0bGVtZW50IHx8IGlzVmFsaWQpIHsKQEAgLTQ5Myw3ICs0OTMs
NyBAQCB2b2lkIFNXU2VydmVyOjpzdGFydFNjcmlwdEZldGNoKGNvbnN0IFNlcnZpY2VXb3JrZXJK
b2JEYXRhJiBqb2JEYXRhLCBTV1NlcnZlclJlZwogICAgICAgICByZXF1ZXN0LnNldFByaW9yaXR5
KFJlc291cmNlTG9hZFByaW9yaXR5OjpMb3cpOwogICAgICAgICByZXF1ZXN0LnNldElzQXBwSW5p
dGlhdGVkKHJlZ2lzdHJhdGlvbi5pc0FwcEluaXRpYXRlZCgpKTsKIAotICAgICAgICBtX3NvZnRV
cGRhdGVDYWxsYmFjayhTZXJ2aWNlV29ya2VySm9iRGF0YSB7IGpvYkRhdGEgfSwgc2hvdWxkUmVm
cmVzaENhY2hlLCBXVEZNb3ZlKHJlcXVlc3QpLCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0
cih0aGlzKV0oYXV0byYgcmVzdWx0KSB7CisgICAgICAgIG1fc29mdFVwZGF0ZUNhbGxiYWNrKFNl
cnZpY2VXb3JrZXJKb2JEYXRhIHsgam9iRGF0YSB9LCBzaG91bGRSZWZyZXNoQ2FjaGUsIFdURk1v
dmUocmVxdWVzdCksIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XShhdXRvJiBy
ZXN1bHQpIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICAgICAgc2NyaXB0RmV0Y2hGaW5pc2hlZChyZXN1bHQpOwpAQCAtNzY1LDcg
Kzc2NSw3IEBAIHZvaWQgU1dTZXJ2ZXI6OnJ1blNlcnZpY2VXb3JrZXJJZk5lY2Vzc2FyeShTZXJ2
aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyLCBSCiAgICAgfQogCiAgICAgaWYgKHdvcmtl
ci0+aXNUZXJtaW5hdGluZygpKSB7Ci0gICAgICAgIHdvcmtlci0+d2hlblRlcm1pbmF0ZWQoW3Ro
aXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIGlkZW50aWZpZXIsIGNhbGxiYWNrID0g
V1RGTW92ZShjYWxsYmFjayldKCkgbXV0YWJsZSB7CisgICAgICAgIHdvcmtlci0+d2hlblRlcm1p
bmF0ZWQoW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGlkZW50aWZpZXIsIGNh
bGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAo
IXdlYWtUaGlzKQogICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhudWxscHRyKTsKICAg
ICAgICAgICAgIHJ1blNlcnZpY2VXb3JrZXJJZk5lY2Vzc2FyeShpZGVudGlmaWVyLCBXVEZNb3Zl
KGNhbGxiYWNrKSk7CkBAIC0xMTQ3LDcgKzExNDcsNyBAQCB2b2lkIFNXU2VydmVyOjpjcmVhdGVD
b250ZXh0Q29ubmVjdGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVnaXN0cmFibGVEb21h
aQogICAgIFJFTEVBU0VfTE9HKFNlcnZpY2VXb3JrZXIsICJTV1NlcnZlcjo6Y3JlYXRlQ29udGV4
dENvbm5lY3Rpb24gd2lsbCBjcmVhdGUgYSBjb25uZWN0aW9uIik7CiAKICAgICBtX3BlbmRpbmdD
b25uZWN0aW9uRG9tYWlucy5hZGQocmVnaXN0cmFibGVEb21haW4pOwotICAgIG1fY3JlYXRlQ29u
dGV4dENvbm5lY3Rpb25DYWxsYmFjayhyZWdpc3RyYWJsZURvbWFpbiwgc2VydmljZVdvcmtlclBh
Z2VJZGVudGlmaWVyLCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgcmVnaXN0
cmFibGVEb21haW4sIHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcl0geworICAgIG1fY3JlYXRl
Q29udGV4dENvbm5lY3Rpb25DYWxsYmFjayhyZWdpc3RyYWJsZURvbWFpbiwgc2VydmljZVdvcmtl
clBhZ2VJZGVudGlmaWVyLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgcmVn
aXN0cmFibGVEb21haW4sIHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcl0gewogICAgICAgICBp
ZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC0xMTk1LDcgKzExOTUsNyBA
QCB2b2lkIFNXU2VydmVyOjpzb2Z0VXBkYXRlKFNXU2VydmVyUmVnaXN0cmF0aW9uJiByZWdpc3Ry
YXRpb24pCiAKIHZvaWQgU1dTZXJ2ZXI6OnByb2Nlc3NQdXNoTWVzc2FnZShzdGQ6Om9wdGlvbmFs
PFZlY3Rvcjx1aW50OF90Pj4mJiBkYXRhLCBVUkwmJiByZWdpc3RyYXRpb25VUkwsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spCiB7Ci0gICAgd2hlbkltcG9ydElzQ29t
cGxldGVkSWZOZWVkZWQoW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIGRhdGEg
PSBXVEZNb3ZlKGRhdGEpLCByZWdpc3RyYXRpb25VUkwgPSBXVEZNb3ZlKHJlZ2lzdHJhdGlvblVS
TCksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKCkgbXV0YWJsZSB7CisgICAgd2hlbklt
cG9ydElzQ29tcGxldGVkSWZOZWVkZWQoW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlz
IH0sIGRhdGEgPSBXVEZNb3ZlKGRhdGEpLCByZWdpc3RyYXRpb25VUkwgPSBXVEZNb3ZlKHJlZ2lz
dHJhdGlvblVSTCksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKCkgbXV0YWJsZSB7CiAg
ICAgICAgIGlmICghd2Vha1RoaXMpIHsKICAgICAgICAgICAgIGNhbGxiYWNrKGZhbHNlKTsKICAg
ICAgICAgICAgIHJldHVybjsKQEAgLTEyNDcsNyArMTI0Nyw3IEBAIHZvaWQgU1dTZXJ2ZXI6OmZp
cmVGdW5jdGlvbmFsRXZlbnQoU1dTZXJ2ZXJSZWdpc3RyYXRpb24mIHJlZ2lzdHJhdGlvbiwgQ29t
cGxldGlvCiAKICAgICAvLyBGSVhNRTogd2Ugc2hvdWxkIGNoZWNrIHdoZXRoZXIgd2UgY2FuIHNr
aXAgdGhlIGV2ZW50IGFuZCBpZiBza2lwcGluZyBkbyBhIHNvZnQtdXBkYXRlLgogCi0gICAgd29y
a2VyLT53aGVuQWN0aXZhdGVkKFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBj
YWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCByZWdpc3RyYXRpb25JZGVudGlmaWVyID0gcmVn
aXN0cmF0aW9uLmlkZW50aWZpZXIoKSwgc2VydmljZVdvcmtlcklkZW50aWZpZXIgPSB3b3JrZXIt
PmlkZW50aWZpZXIoKV0oYm9vbCBzdWNjZXNzKSBtdXRhYmxlIHsKKyAgICB3b3JrZXItPndoZW5B
Y3RpdmF0ZWQoW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGNhbGxiYWNrID0g
V1RGTW92ZShjYWxsYmFjayksIHJlZ2lzdHJhdGlvbklkZW50aWZpZXIgPSByZWdpc3RyYXRpb24u
aWRlbnRpZmllcigpLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciA9IHdvcmtlci0+aWRlbnRpZmll
cigpXShib29sIHN1Y2Nlc3MpIG11dGFibGUgewogICAgICAgICBpZiAoIXdlYWtUaGlzKSB7CiAg
ICAgICAgICAgICBjYWxsYmFjayhtYWtlVW5leHBlY3RlZChTaG91bGRTa2lwRXZlbnQ6Ok5vKSk7
CiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKaW5kZXggOWRjNDIxYThiOWFl
NTNhOTRhNDMxYTkxNDlhMWEyODAxZTYyZDJhZS4uYWY5NzAxNjM5MDEwZmU0Y2NkNTQ3ZGFiZjBm
M2JhMTIzMGIyMGU1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcApAQCAtMTI0LDcgKzEyNCw3IEBAIHZv
aWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6Z2V0Q29uZmlndXJhdGlvbihSZW1vdGVNZWRpYVBs
YXllckNvbmZpZ3VyYXRpb24mIGNvCiAjZW5kaWYKICAgICBjb25maWd1cmF0aW9uLnNob3VsZEln
bm9yZUludHJpbnNpY1NpemUgPSBtX3BsYXllci0+c2hvdWxkSWdub3JlSW50cmluc2ljU2l6ZSgp
OwogCi0gICAgbV9vYnNlcnZpbmdUaW1lQ2hhbmdlcyA9IG1fcGxheWVyLT5zZXRDdXJyZW50VGlt
ZURpZENoYW5nZUNhbGxiYWNrKFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXSAo
YXV0byBjdXJyZW50VGltZSkgbXV0YWJsZSB7CisgICAgbV9vYnNlcnZpbmdUaW1lQ2hhbmdlcyA9
IG1fcGxheWVyLT5zZXRDdXJyZW50VGltZURpZENoYW5nZUNhbGxiYWNrKFt0aGlzLCB3ZWFrVGhp
cyA9IFdlYWtQdHIgeyAqdGhpcyB9XSAoYXV0byBjdXJyZW50VGltZSkgbXV0YWJsZSB7CiAgICAg
ICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTEwMTYsNyArMTAx
Niw3IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6cGVyZm9ybVRhc2tBdE1lZGlhVGlt
ZShjb25zdCBNZWRpYVRpbWUmIHRhc2tUaW1lLCBNCiAgICAgfQogCiAgICAgbV9wZXJmb3JtVGFz
a0F0TWVkaWFUaW1lQ29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KTsKLSAgICBtX3BsYXllci0+cGVyZm9ybVRhc2tBdE1lZGlhVGltZShbdGhpcywgd2Vha1RoaXMg
PSBtYWtlV2Vha1B0cih0aGlzKV0oKSBtdXRhYmxlIHsKKyAgICBtX3BsYXllci0+cGVyZm9ybVRh
c2tBdE1lZGlhVGltZShbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0oKSBtdXRh
YmxlIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcyB8fCAhbV9wZXJmb3JtVGFza0F0TWVkaWFUaW1l
Q29tcGxldGlvbkhhbmRsZXIpCiAgICAgICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRN
YW5hZ2VyLmNwcAppbmRleCAxNmI2MGE3YWExNDZmNjE5YmI1MTNiOTk4OTVmYzgwYjAwNzAwODJh
Li4xZjk5M2FhNzY4MTk1ZWY1ODgxNDhmYjQzOGRiNzU0OGExNjJlZTM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVySW50ZXJuYWxVbml0TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFs
VW5pdE1hbmFnZXIuY3BwCkBAIC0xMjgsNyArMTI4LDcgQEAgUmVtb3RlQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyOjpVbml0OjpVbml0KEF1ZGlvTWVkaWFT
dHIKICAgICAsIG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQogICAgICwgbV9sb2Nh
bFVuaXQoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ6
OmNyZWF0ZUxvY2FsSW50ZXJuYWxVbml0KHJlbmRlckNhbGxiYWNrKCp0aGlzKSkpCiB7Ci0gICAg
bV9sb2NhbFVuaXQtPnJldHJpZXZlRm9ybWF0RGVzY3JpcHRpb24oW3dlYWtUaGlzID0gbWFrZVdl
YWtQdHIodGhpcyksIHRoaXMsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGF1dG8mJiBk
ZXNjcmlwdGlvbikgbXV0YWJsZSB7CisgICAgbV9sb2NhbFVuaXQtPnJldHJpZXZlRm9ybWF0RGVz
Y3JpcHRpb24oW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHRoaXMsIGNhbGxiYWNrID0g
V1RGTW92ZShjYWxsYmFjayldKGF1dG8mJiBkZXNjcmlwdGlvbikgbXV0YWJsZSB7CiAgICAgICAg
IGlmICghd2Vha1RoaXMgfHwgIWRlc2NyaXB0aW9uKSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xP
R19JRighZGVzY3JpcHRpb24sIFdlYlJUQywgIlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVySW50ZXJuYWxVbml0TWFuYWdlcjo6VW5pdCB1bmFibGUgdG8gZ2V0IGZvcm1hdCBkZXNj
cmlwdGlvbiIpOwogICAgICAgICAgICAgY2FsbGJhY2soeyB9LCAwKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyLmNwcAppbmRleCA3MWMwMWJiNGYxYzhkNzBiMWI4ZDVmMDNiODQzMDg2
ZjhhMzg3NDk2Li40OTcwNzRiZjhhMmYyYzk5ZmI2NDAyMzI5NTA5ZmNhMjI3MTIxOTI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9S
ZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwCkBAIC01Myw3ICs1Myw3IEBAIFJlbW90
ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
KFNhbXBsZUJ1ZmZlckRpc3BsCiAKIHZvaWQgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
Ojppbml0aWFsaXplKGJvb2wgaGlkZVJvb3RMYXllciwgSW50U2l6ZSBzaXplLCBMYXllckluaXRp
YWxpemF0aW9uQ2FsbGJhY2smJiBjYWxsYmFjaykKIHsKLSAgICBtX3NhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllci0+aW5pdGlhbGl6ZShoaWRlUm9vdExheWVyLCBzaXplLCBbdGhpcywgd2Vha1RoaXMg
PSBtYWtlV2Vha1B0cih0aGlzKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYm9vbCBk
aWRTdWNjZWVkKSBtdXRhYmxlIHsKKyAgICBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci0+aW5p
dGlhbGl6ZShoaWRlUm9vdExheWVyLCBzaXplLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsg
KnRoaXMgfSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYm9vbCBkaWRTdWNjZWVkKSBt
dXRhYmxlIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcyB8fCAhZGlkU3VjY2VlZCkKICAgICAgICAg
ICAgIHJldHVybiBjYWxsYmFjayh7IH0pOwogICAgICAgICBtX2xheWVySG9zdGluZ0NvbnRleHQg
PSBMYXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVGb3JFeHRlcm5hbEhvc3RpbmdQcm9jZXNzKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hl
Y2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tl
ci5jcHAKaW5kZXggY2JjNDUxODIxMWE5YTRkZjZlODI4N2FhMGRkMzU4OTFhZjkyYzBiMS4uOGI0
Y2NhNzYyMTI3MzMwYzllZDkzMGQ4NzQwODRmNTRkNDRmYjg0NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcApAQCAtNDY4LDcg
KzQ2OCw3IEBAIHZvaWQgTmV0d29ya0xvYWRDaGVja2VyOjpwcm9jZXNzQ29udGVudFJ1bGVMaXN0
c0ZvckxvYWQoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBtX25ldHdvcmtQcm9jZXNzLT5uZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlcigp
LmNvbnRlbnRFeHRlbnNpb25zQmFja2VuZCgqbV91c2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlm
aWVyLCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgcmVxdWVzdCA9IFdURk1v
dmUocmVxdWVzdCksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGF1dG8mIGJhY2tlbmQp
IG11dGFibGUgeworICAgIG1fbmV0d29ya1Byb2Nlc3MtPm5ldHdvcmtDb250ZW50UnVsZUxpc3RN
YW5hZ2VyKCkuY29udGVudEV4dGVuc2lvbnNCYWNrZW5kKCptX3VzZXJDb250ZW50Q29udHJvbGxl
cklkZW50aWZpZXIsIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCByZXF1ZXN0
ID0gV1RGTW92ZShyZXF1ZXN0KSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYXV0byYg
YmFja2VuZCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpIHsKICAgICAgICAgICAg
IGNhbGxiYWNrKG1ha2VVbmV4cGVjdGVkKFJlc291cmNlRXJyb3IgeyBSZXNvdXJjZUVycm9yOjpU
eXBlOjpDYW5jZWxsYXRpb24gfSkpOwogICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJG
ZXRjaFRhc2suY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwCmluZGV4IDAzNDE3NGE0YTE4NmQ0Y2JkMTNmYTQ5
MWNiYTViMzg1NmViYzk5ZmQuLjgyNTdlYzgxNGZmMjkwYTY1YzY0MjVjMjJhNTcyZGFlMzE1ZTU1
MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtl
ci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAKQEAgLTIyNyw3
ICsyMjcsNyBAQCB2b2lkIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OmNhbm5vdEhhbmRsZSgpCiB7
CiAgICAgU1dGRVRDSF9SRUxFQVNFX0xPRygiY2Fubm90SGFuZGxlOiIpOwogICAgIC8vIE1ha2Ug
c3VyZSB3ZSBjYWxsIGRpZE5vdEhhbmRsZSBhc3luY2hyb25vdXNseSBiZWNhdXNlIGZhaWxpbmcg
c3luY2hyb25vdXNseSB3b3VsZCBnZXQgdGhlIE5ldHdvcmtSZXNvdXJjZUxvYWRlciBpbiBhIGJh
ZCBzdGF0ZS4KLSAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3dlYWtUaGlzID0gbWFrZVdl
YWtQdHIodGhpcyldIHsKKyAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3dlYWtUaGlzID0g
V2Vha1B0ciB7ICp0aGlzIH1dIHsKICAgICAgICAgaWYgKHdlYWtUaGlzKQogICAgICAgICAgICAg
d2Vha1RoaXMtPmRpZE5vdEhhbmRsZSgpOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2
ZXJDb25uZWN0aW9uLmNwcAppbmRleCAwNGQ2Y2U4ZDIwMGJiMGE3OTc0MTA0NDNlYTRjMTBiM2Y0
YWZiMDc3Li45ODhjYzE5MDE0ZTNmMWEwMDFmYTYyMzI5OWFiMmI1NTRmNWIwYTg0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2
ZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcApAQCAtMTQxLDcgKzE0MSw3IEBAIHZv
aWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpjb250cm9sQ2xpZW50KFNlcnZpY2VXb3JrZXJDbGll
bnRJZGVudGlmaWVyIGNsaWVudElkCiAgICAgLy8gQXMgcGVyIHN0ZXAgMTIgb2YgaHR0cHM6Ly93
M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI29uLWZldGNoLXJlcXVlc3QtYWxnb3JpdGhtLCB0
aGUgYWN0aXZlIHNlcnZpY2Ugd29ya2VyIHNob3VsZCBiZSBjb250cm9sbGluZyB0aGUgZG9jdW1l
bnQuCiAgICAgLy8gV2UgcmVnaXN0ZXIgYSB0ZW1wb3Jhcnkgc2VydmljZSB3b3JrZXIgY2xpZW50
IHVzaW5nIHRoZSBpZGVudGlmaWVyIHByb3ZpZGVkIGJ5IERvY3VtZW50TG9hZGVyIGFuZCBub3Rp
ZnkgRG9jdW1lbnRMb2FkZXIgYWJvdXQgaXQuCiAgICAgLy8gSWYgbm90aWZpY2F0aW9uIGlzIHN1
Y2Nlc3NmdWwsIERvY3VtZW50TG9hZGVyIHdpbGwgdW5yZWdpc3RlciB0aGUgdGVtcG9yYXJ5IHNl
cnZpY2Ugd29ya2VyIGNsaWVudCBqdXN0IGFmdGVyIHRoZSBkb2N1bWVudCBpcyBjcmVhdGVkIGFu
ZCByZWdpc3RlcmVkIGFzIGEgY2xpZW50LgotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdl
czo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjpTZXREb2N1bWVudElzQ29udHJvbGxlZCB7IGNsaWVu
dElkZW50aWZpZXIuY29udGV4dElkZW50aWZpZXIsIHJlZ2lzdHJhdGlvbi5kYXRhKCkgfSwgW3dl
YWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIHRoaXMsIGNsaWVudElkZW50aWZpZXJdKGJvb2wg
aXNTdWNjZXNzKSB7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJTV0NsaWVu
dENvbm5lY3Rpb246OlNldERvY3VtZW50SXNDb250cm9sbGVkIHsgY2xpZW50SWRlbnRpZmllci5j
b250ZXh0SWRlbnRpZmllciwgcmVnaXN0cmF0aW9uLmRhdGEoKSB9LCBbd2Vha1RoaXMgPSBXZWFr
UHRyIHsgKnRoaXMgfSwgdGhpcywgY2xpZW50SWRlbnRpZmllcl0oYm9vbCBpc1N1Y2Nlc3MpIHsK
ICAgICAgICAgaWYgKCF3ZWFrVGhpcyB8fCBpc1N1Y2Nlc3MpCiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIHVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNsaWVudElkZW50aWZpZXIp
OwpAQCAtMjA1LDcgKzIwNSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxTZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrPiBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmNyZWF0ZUZldGNoVGFzayhOCiAKIHZvaWQgV2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uOjpzdGFydEZldGNoKFNlcnZpY2VXb3JrZXJGZXRjaFRhc2smIHRh
c2ssIFNXU2VydmVyV29ya2VyJiB3b3JrZXIpCiB7Ci0gICAgYXV0byBydW5TZXJ2ZXJXb3JrZXJB
bmRTdGFydEZldGNoID0gW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIHRoaXMsIHRhc2sg
PSBtYWtlV2Vha1B0cih0YXNrKV0oYm9vbCBzdWNjZXNzKSBtdXRhYmxlIHsKKyAgICBhdXRvIHJ1
blNlcnZlcldvcmtlckFuZFN0YXJ0RmV0Y2ggPSBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMg
fSwgdGhpcywgdGFzayA9IFdlYWtQdHIgeyB0YXNrIH1dKGJvb2wgc3VjY2VzcykgbXV0YWJsZSB7
CiAgICAgICAgIGlmICghdGFzaykKICAgICAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcAppbmRleCBkYmIzNjRi
ZTRkZjgxN2VjMDc1MzM5ZDkzZDYxOTE0YzYyODI5NjQ3Li4zY2EwOTZjN2M0Yjc3OTMxODQxMGEz
YjFhM2I3MjYzMTM2NjkxYjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJU
b0NvbnRleHRDb25uZWN0aW9uLmNwcApAQCAtMTE1LDcgKzExNSw3IEBAIHZvaWQgV2ViU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpmaXJlUHVzaEV2ZW50KFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJJZGVudGlmCiAgICAgc3RkOjpvcHRpb25hbDxJUEM6OkRhdGFSZWZlcmVuY2U+IGlwY0RhdGE7
CiAgICAgaWYgKGRhdGEpCiAgICAgICAgIGlwY0RhdGEgPSBJUEM6OkRhdGFSZWZlcmVuY2UgeyBk
YXRhLT5kYXRhKCksIGRhdGEtPnNpemUoKSB9OwotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNz
YWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OkZpcmVQdXNoRXZlbnQoc2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIsIGlwY0RhdGEpLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlz
KSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYm9vbCB3YXNQcm9jZXNzZWQpIG11dGFi
bGUgeworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb246OkZpcmVQdXNoRXZlbnQoc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGlwY0Rh
dGEpLCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNh
bGxiYWNrKV0oYm9vbCB3YXNQcm9jZXNzZWQpIG11dGFibGUgewogICAgICAgICBpZiAod2Vha1Ro
aXMgJiYgIS0td2Vha1RoaXMtPm1fcHJvY2Vzc2luZ1B1c2hFdmVudHNDb3VudCkKICAgICAgICAg
ICAgIHdlYWtUaGlzLT5tX2Nvbm5lY3Rpb24ubmV0d29ya1Byb2Nlc3MoKS5wYXJlbnRQcm9jZXNz
Q29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpFbmRTZXJ2
aWNlV29ya2VyQmFja2dyb3VuZFByb2Nlc3NpbmcgeyB3ZWFrVGhpcy0+d2ViUHJvY2Vzc0lkZW50
aWZpZXIoKSB9LCAwKTsKICAgICAgICAgY2FsbGJhY2sod2FzUHJvY2Vzc2VkKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5l
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5n
aW5lLmNwcAppbmRleCA3OGMyN2U4ODI0ZTBhOTRhYWE1MTE4YzE3MGYzNDFlMDhlNmNmNTczLi5i
ZjE5NzRmYzU3MDQxMWRlYzA1N2VhNDE0NzAyZTBjYzA1MWY2MzMwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUu
Y3BwCkBAIC0zNjgsNyArMzY4LDcgQEAgdm9pZCBFbmdpbmU6OmluaXRpYWxpemUoQ29tcGxldGlv
bkNhbGxiYWNrJiYgY2FsbGJhY2spCiAgICAgaWYgKCFzaG91bGRDb21wdXRlU2FsdCkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgbV9pb1F1ZXVlLT5kaXNwYXRjaChbdGhpcywgd2Vha1RoaXMgPSBt
YWtlV2Vha1B0cih0aGlzKSwgcm9vdFBhdGggPSBtX3Jvb3RQYXRoLmlzb2xhdGVkQ29weSgpXSAo
KSBtdXRhYmxlIHsKKyAgICBtX2lvUXVldWUtPmRpc3BhdGNoKFt0aGlzLCB3ZWFrVGhpcyA9IFdl
YWtQdHIgeyAqdGhpcyB9LCByb290UGF0aCA9IG1fcm9vdFBhdGguaXNvbGF0ZWRDb3B5KCldICgp
IG11dGFibGUgewogICAgICAgICBGaWxlU3lzdGVtOjptYWtlQWxsRGlyZWN0b3JpZXMocm9vdFBh
dGgpOwogICAgICAgICBTdHJpbmcgc2FsdFBhdGggPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRp
bmdDb21wb25lbnQocm9vdFBhdGgsICJzYWx0Il9zKTsKICAgICAgICAgUnVuTG9vcDo6bWFpbigp
LmRpc3BhdGNoKFt0aGlzLCB3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCBzYWx0ID0gRmls
ZVN5c3RlbTo6cmVhZE9yTWFrZVNhbHQoc2FsdFBhdGgpXSgpIG11dGFibGUgewpAQCAtNDU4LDcg
KzQ1OCw3IEBAIHZvaWQgRW5naW5lOjp3cml0ZUZpbGUoY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwg
TmV0d29ya0NhY2hlOjpEYXRhJiYgZGF0YSwgV2ViQ29yCiAgICAgfQogCiAgICAgbV9wZW5kaW5n
V3JpdGVDYWxsYmFja3MuYWRkKCsrbV9wZW5kaW5nQ2FsbGJhY2tzQ291bnRlciwgV1RGTW92ZShj
YWxsYmFjaykpOwotICAgIG1faW9RdWV1ZS0+ZGlzcGF0Y2goW3RoaXMsIHdlYWtUaGlzID0gbWFr
ZVdlYWtQdHIodGhpcyksIGlkZW50aWZpZXIgPSBtX3BlbmRpbmdDYWxsYmFja3NDb3VudGVyLCBk
YXRhID0gV1RGTW92ZShkYXRhKSwgZmlsZW5hbWUgPSBmaWxlbmFtZS5pc29sYXRlZENvcHkoKV0o
KSBtdXRhYmxlIHsKKyAgICBtX2lvUXVldWUtPmRpc3BhdGNoKFt0aGlzLCB3ZWFrVGhpcyA9IFdl
YWtQdHIgeyAqdGhpcyB9LCBpZGVudGlmaWVyID0gbV9wZW5kaW5nQ2FsbGJhY2tzQ291bnRlciwg
ZGF0YSA9IFdURk1vdmUoZGF0YSksIGZpbGVuYW1lID0gZmlsZW5hbWUuaXNvbGF0ZWRDb3B5KCld
KCkgbXV0YWJsZSB7CiAKICAgICAgICAgU3RyaW5nIGRpcmVjdG9yeVBhdGggPSBGaWxlU3lzdGVt
OjpwYXJlbnRQYXRoKGZpbGVuYW1lKTsKICAgICAgICAgaWYgKCFGaWxlU3lzdGVtOjpmaWxlRXhp
c3RzKGRpcmVjdG9yeVBhdGgpKQpAQCAtNDkwLDcgKzQ5MCw3IEBAIHZvaWQgRW5naW5lOjpyZWFk
RmlsZShjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0
IE5ldHdvCiAgICAgfQogCiAgICAgbV9wZW5kaW5nUmVhZENhbGxiYWNrcy5hZGQoKyttX3BlbmRp
bmdDYWxsYmFja3NDb3VudGVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7Ci0gICAgbV9pb1F1ZXVlLT5k
aXNwYXRjaChbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgaWRlbnRpZmllciA9
IG1fcGVuZGluZ0NhbGxiYWNrc0NvdW50ZXIsIGZpbGVuYW1lID0gZmlsZW5hbWUuaXNvbGF0ZWRD
b3B5KCldKCkgbXV0YWJsZSB7CisgICAgbV9pb1F1ZXVlLT5kaXNwYXRjaChbdGhpcywgd2Vha1Ro
aXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgaWRlbnRpZmllciA9IG1fcGVuZGluZ0NhbGxiYWNrc0Nv
dW50ZXIsIGZpbGVuYW1lID0gZmlsZW5hbWUuaXNvbGF0ZWRDb3B5KCldKCkgbXV0YWJsZSB7CiAg
ICAgICAgIGF1dG8gY2hhbm5lbCA9IElPQ2hhbm5lbDo6b3BlbihmaWxlbmFtZSwgSU9DaGFubmVs
OjpUeXBlOjpSZWFkKTsKICAgICAgICAgaWYgKCFjaGFubmVsLT5pc09wZW5lZCgpKSB7CiAgICAg
ICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3RoaXMsIHdlYWtUaGlzID0gV1RGTW92
ZSh3ZWFrVGhpcyksIGlkZW50aWZpZXJdKCkgbXV0YWJsZSB7CkBAIC02MzMsNyArNjMzLDcgQEAg
dm9pZCBFbmdpbmU6OmZldGNoRW50cmllcyhib29sIHNob3VsZENvbXB1dGVTaXplLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjwKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGdl
dERpcmVjdG9yaWVzKFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBwYXRoID0g
bV9yb290UGF0aC5pc29sYXRlZENvcHkoKSwgc2hvdWxkQ29tcHV0ZVNpemUsIGNvbXBsZXRpb25I
YW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGNvbnN0IGF1dG8mIGZvbGRlclBh
dGhzKSBtdXRhYmxlIHsKKyAgICBnZXREaXJlY3RvcmllcyhbdGhpcywgd2Vha1RoaXMgPSBXZWFr
UHRyIHsgKnRoaXMgfSwgcGF0aCA9IG1fcm9vdFBhdGguaXNvbGF0ZWRDb3B5KCksIHNob3VsZENv
bXB1dGVTaXplLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
XShjb25zdCBhdXRvJiBmb2xkZXJQYXRocykgbXV0YWJsZSB7CiAgICAgICAgIGlmICghd2Vha1Ro
aXMpCiAgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKICAgICAgICAg
ZmV0Y2hEaXJlY3RvcnlFbnRyaWVzKHNob3VsZENvbXB1dGVTaXplLCBmb2xkZXJQYXRocywgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwpAQCAtNzMwLDcgKzczMCw3IEBAIHZvaWQgRW5naW5l
OjpjbGVhckNhY2hlc0Zvck9yaWdpbihjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEm
IG9yaWdpbiwgQ29tCiB2b2lkIEVuZ2luZTo6Y2xlYXJDYWNoZXNGb3JPcmlnaW5Gcm9tRGlzayhj
b25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIG9yaWdpbiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChSdW5Mb29wOjpp
c01haW4oKSk7Ci0gICAgZ2V0RGlyZWN0b3JpZXMoW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQ
dHIodGhpcyksIG9yaWdpbiwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKV0oY29uc3QgYXV0byYgZm9sZGVyUGF0aHMpIG11dGFibGUgeworICAgIGdldERpcmVj
dG9yaWVzKFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBvcmlnaW4sIGNvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGNvbnN0IGF1dG8mIGZv
bGRlclBhdGhzKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAg
IHJldHVybiBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgICAgICBjbGVhckNhY2hlc0Zvck9yaWdp
bkZyb21EaXJlY3Rvcmllcyhmb2xkZXJQYXRocywgb3JpZ2luLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29h
L1dlYlNvY2tldFRhc2tDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29j
b2EvV2ViU29ja2V0VGFza0NvY29hLm1tCmluZGV4IDlmMTk5NGNkZDE2OTg5YmFlOTg4MTQ1NTlk
MzlmN2MyYTBiMTI5ZGIuLmU2NDljMzVmZjUwMzA4MDFlYTdiZDYzMzU4MjhiNzFhNDczMGYzMjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvV2ViU29ja2V0
VGFza0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvV2Vi
U29ja2V0VGFza0NvY29hLm1tCkBAIC01Nyw3ICs1Nyw3IEBAIFdlYlNvY2tldFRhc2s6On5XZWJT
b2NrZXRUYXNrKCkKIAogdm9pZCBXZWJTb2NrZXRUYXNrOjpyZWFkTmV4dE1lc3NhZ2UoKQogewot
ICAgIFttX3Rhc2sgcmVjZWl2ZU1lc3NhZ2VXaXRoQ29tcGxldGlvbkhhbmRsZXI6IG1ha2VCbG9j
a1B0cihbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0oTlNVUkxTZXNzaW9uV2Vi
U29ja2V0TWVzc2FnZSogX051bGxhYmxlIG1lc3NhZ2UsIE5TRXJyb3IgKiBfTnVsbGFibGUgZXJy
b3IpIHsKKyAgICBbbV90YXNrIHJlY2VpdmVNZXNzYWdlV2l0aENvbXBsZXRpb25IYW5kbGVyOiBt
YWtlQmxvY2tQdHIoW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dKE5TVVJMU2Vz
c2lvbldlYlNvY2tldE1lc3NhZ2UqIF9OdWxsYWJsZSBtZXNzYWdlLCBOU0Vycm9yICogX051bGxh
YmxlIGVycm9yKSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdUZXN0aW5nLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d1Rlc3RpbmcubW0KaW5kZXggZDk5YThhYTkzYzkzYWFkZGY2MmI1MjU5MTQ1ODBiMTIxYzliMDEw
My4uNzNjYTkzNDQ0ZTA5MGM2NzhmYmY4NGM4NDM4Yjg5ODU0MzRiOGExNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW0K
QEAgLTQ5Niw3ICs0OTYsNyBAQCAtICh2b2lkKV9jcmVhdGVNZWRpYVNlc3Npb25Db29yZGluYXRv
ckZvclRlc3Rpbmc6KGlkIDxfV0tNZWRpYVNlc3Npb25Db29yZGluYXRvcgogCiAgICAgICAgIHZv
aWQgam9pbihXZWJLaXQ6Ok1lZGlhU2Vzc2lvbkNvbW1hbmRDb21wbGV0aW9uSGFuZGxlciYmIGNh
bGxiYWNrKSBmaW5hbAogICAgICAgICB7Ci0gICAgICAgICAgICBbbV9jbGllbnRDb29yZGluYXRv
ciBqb2luV2l0aENvbXBsZXRpb246bWFrZUJsb2NrUHRyKFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRy
KHRoaXMpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoQk9PTCBzdWNjZXNzKSBtdXRh
YmxlIHsKKyAgICAgICAgICAgIFttX2NsaWVudENvb3JkaW5hdG9yIGpvaW5XaXRoQ29tcGxldGlv
bjptYWtlQmxvY2tQdHIoW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGNhbGxiYWNrID0g
V1RGTW92ZShjYWxsYmFjayldIChCT09MIHN1Y2Nlc3MpIG11dGFibGUgewogICAgICAgICAgICAg
ICAgIGlmICghd2Vha1RoaXMpIHsKICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soV2ViQ29y
ZTo6RXhjZXB0aW9uRGF0YSB7IFdlYkNvcmU6OkludmFsaWRTdGF0ZUVycm9yLCBTdHJpbmcoKSB9
KTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtNTEzLDcgKzUxMyw3IEBAIC0gKHZv
aWQpX2NyZWF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yRm9yVGVzdGluZzooaWQgPF9XS01lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yCiAKICAgICAgICAgdm9pZCBzZWVrVG8oZG91YmxlIHRpbWUsIFdl
YktpdDo6TWVkaWFTZXNzaW9uQ29tbWFuZENvbXBsZXRpb25IYW5kbGVyJiYgY2FsbGJhY2spIGZp
bmFsCiAgICAgICAgIHsKLSAgICAgICAgICAgIFttX2NsaWVudENvb3JkaW5hdG9yIHNlZWtUbzp0
aW1lIHdpdGhDb21wbGV0aW9uOm1ha2VCbG9ja1B0cihbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0
aGlzKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKEJPT0wgc3VjY2VzcykgbXV0YWJs
ZSB7CisgICAgICAgICAgICBbbV9jbGllbnRDb29yZGluYXRvciBzZWVrVG86dGltZSB3aXRoQ29t
cGxldGlvbjptYWtlQmxvY2tQdHIoW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGNhbGxi
YWNrID0gV1RGTW92ZShjYWxsYmFjayldIChCT09MIHN1Y2Nlc3MpIG11dGFibGUgewogICAgICAg
ICAgICAgICAgIGlmICghd2Vha1RoaXMpIHsKICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2so
V2ViQ29yZTo6RXhjZXB0aW9uRGF0YSB7IFdlYkNvcmU6OkludmFsaWRTdGF0ZUVycm9yLCBTdHJp
bmcoKSB9KTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtNTI1LDcgKzUyNSw3IEBA
IC0gKHZvaWQpX2NyZWF0ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yRm9yVGVzdGluZzooaWQgPF9X
S01lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yCiAKICAgICAgICAgdm9pZCBwbGF5KFdlYktpdDo6TWVk
aWFTZXNzaW9uQ29tbWFuZENvbXBsZXRpb25IYW5kbGVyJiYgY2FsbGJhY2spIGZpbmFsCiAgICAg
ICAgIHsKLSAgICAgICAgICAgIFttX2NsaWVudENvb3JkaW5hdG9yIHBsYXlXaXRoQ29tcGxldGlv
bjptYWtlQmxvY2tQdHIoW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIGNhbGxiYWNrID0g
V1RGTW92ZShjYWxsYmFjayldIChCT09MIHN1Y2Nlc3MpIG11dGFibGUgeworICAgICAgICAgICAg
W21fY2xpZW50Q29vcmRpbmF0b3IgcGxheVdpdGhDb21wbGV0aW9uOm1ha2VCbG9ja1B0cihbd2Vh
a1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0g
KEJPT0wgc3VjY2VzcykgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykg
ewogICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhXZWJDb3JlOjpFeGNlcHRpb25EYXRhIHsg
V2ViQ29yZTo6SW52YWxpZFN0YXRlRXJyb3IsIFN0cmluZygpIH0pOwogICAgICAgICAgICAgICAg
ICAgICByZXR1cm47CkBAIC01MzcsNyArNTM3LDcgQEAgLSAodm9pZClfY3JlYXRlTWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JGb3JUZXN0aW5nOihpZCA8X1dLTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IK
IAogICAgICAgICB2b2lkIHBhdXNlKFdlYktpdDo6TWVkaWFTZXNzaW9uQ29tbWFuZENvbXBsZXRp
b25IYW5kbGVyJiYgY2FsbGJhY2spIGZpbmFsCiAgICAgICAgIHsKLSAgICAgICAgICAgIFttX2Ns
aWVudENvb3JkaW5hdG9yIHBhdXNlV2l0aENvbXBsZXRpb246bWFrZUJsb2NrUHRyKFt3ZWFrVGhp
cyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoQk9P
TCBzdWNjZXNzKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIFttX2NsaWVudENvb3JkaW5hdG9yIHBh
dXNlV2l0aENvbXBsZXRpb246bWFrZUJsb2NrUHRyKFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhp
cyB9LCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoQk9PTCBzdWNjZXNzKSBtdXRhYmxl
IHsKICAgICAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKSB7CiAgICAgICAgICAgICAgICAgICAg
IGNhbGxiYWNrKFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEgeyBXZWJDb3JlOjpJbnZhbGlkU3RhdGVF
cnJvciwgU3RyaW5nKCkgfSk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTU0OSw3
ICs1NDksNyBAQCAtICh2b2lkKV9jcmVhdGVNZWRpYVNlc3Npb25Db29yZGluYXRvckZvclRlc3Rp
bmc6KGlkIDxfV0tNZWRpYVNlc3Npb25Db29yZGluYXRvcgogCiAgICAgICAgIHZvaWQgc2V0VHJh
Y2soY29uc3QgU3RyaW5nJiB0cmFjaywgV2ViS2l0OjpNZWRpYVNlc3Npb25Db21tYW5kQ29tcGxl
dGlvbkhhbmRsZXImJiBjYWxsYmFjaykgZmluYWwKICAgICAgICAgewotICAgICAgICAgICAgW21f
Y2xpZW50Q29vcmRpbmF0b3Igc2V0VHJhY2s6dHJhY2sgd2l0aENvbXBsZXRpb246bWFrZUJsb2Nr
UHRyKFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBjYWxsYmFjayA9IFdURk1vdmUoY2Fs
bGJhY2spXSAoQk9PTCBzdWNjZXNzKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIFttX2NsaWVudENv
b3JkaW5hdG9yIHNldFRyYWNrOnRyYWNrIHdpdGhDb21wbGV0aW9uOm1ha2VCbG9ja1B0cihbd2Vh
a1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0g
KEJPT0wgc3VjY2VzcykgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykg
ewogICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhXZWJDb3JlOjpFeGNlcHRpb25EYXRhIHsg
V2ViQ29yZTo6SW52YWxpZFN0YXRlRXJyb3IsIFN0cmluZygpIH0pOwogICAgICAgICAgICAgICAg
ICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9H
cm91cEFjdGl2aXRpZXMvR3JvdXBBY3Rpdml0aWVzU2Vzc2lvbk5vdGlmaWVyLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvR3JvdXBBY3Rpdml0aWVzL0dyb3VwQWN0aXZpdGllc1Nl
c3Npb25Ob3RpZmllci5tbQppbmRleCA2OTc2YmJiNDY4MjhhM2NjOTJhMTU1ZTViOWNkZDljNjMw
MjEyOTQ0Li42NmNhZDc1ZmI4NTNlMmQ1ZTRhMDFjYmMyODM3NGFkMzM5ZjYwMmFlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Hcm91cEFjdGl2aXRpZXMvR3JvdXBB
Y3Rpdml0aWVzU2Vzc2lvbk5vdGlmaWVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL0dyb3VwQWN0aXZpdGllcy9Hcm91cEFjdGl2aXRpZXNTZXNzaW9uTm90aWZpZXIubW0K
QEAgLTQ5LDcgKzQ5LDcgQEAgR3JvdXBBY3Rpdml0aWVzU2Vzc2lvbk5vdGlmaWVyOjpHcm91cEFj
dGl2aXRpZXNTZXNzaW9uTm90aWZpZXIoKQogICAgIDogbV9zZXNzaW9uT2JzZXJ2ZXIoYWRvcHRO
UyhbYWxsb2NXS0dyb3VwU2Vzc2lvbk9ic2VydmVySW5zdGFuY2UoKSBpbml0XSkpCiAgICAgLCBt
X3N0YXRlQ2hhbmdlT2JzZXJ2ZXIoW3RoaXNdIChhdXRvJiBzZXNzaW9uLCBhdXRvIHN0YXRlKSB7
IHNlc3Npb25TdGF0ZUNoYW5nZWQoc2Vzc2lvbiwgc3RhdGUpOyB9KQogewotICAgIG1fc2Vzc2lv
bk9ic2VydmVyLmdldCgpLm5ld1Nlc3Npb25DYWxsYmFjayA9IFt0aGlzLCB3ZWFrVGhpcyA9IG1h
a2VXZWFrUHRyKHRoaXMpXSAoV0tHcm91cFNlc3Npb24gKmdyb3VwU2Vzc2lvbikgeworICAgIG1f
c2Vzc2lvbk9ic2VydmVyLmdldCgpLm5ld1Nlc3Npb25DYWxsYmFjayA9IFt0aGlzLCB3ZWFrVGhp
cyA9IFdlYWtQdHIgeyAqdGhpcyB9XSAoV0tHcm91cFNlc3Npb24gKmdyb3VwU2Vzc2lvbikgewog
ICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQppbmRl
eCBlYjAyNzk0MTIzY2RiN2E1NTZjOWUxMTNjZTYwZjYzOTY5N2I4YTdkLi42NGNhNDE2NTUwOTdl
MTk2NzkwNDZjYTM5N2ZhZTM5ZGJjOTM3OGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KQEAgLTcxOSw3ICs3MTksNyBA
QCB2b2lkIFdlYlByb2Nlc3NQb29sOjpyZWdpc3Rlck5vdGlmaWNhdGlvbk9ic2VydmVycygpCiAg
ICAgbV93ZWFrT2JzZXJ2ZXIgPSBhZG9wdE5TKFtbV0tQcm9jZXNzUG9vbFdlYWtPYnNlcnZlciBh
bGxvY10gaW5pdFdpdGhXZWFrUHRyOm1ha2VXZWFrUHRyKCp0aGlzKV0pOwogCiAjaWYgIVBMQVRG
T1JNKElPU19GQU1JTFkpCi0gICAgbV9wb3dlck9ic2VydmVyID0gbWFrZVVuaXF1ZTxXZWJDb3Jl
OjpQb3dlck9ic2VydmVyPihbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0geworICAgIG1f
cG93ZXJPYnNlcnZlciA9IG1ha2VVbmlxdWU8V2ViQ29yZTo6UG93ZXJPYnNlcnZlcj4oW3dlYWtU
aGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dIHsKICAgICAgICAgaWYgKHdlYWtUaGlzKQogICAgICAg
ICAgICAgd2Vha1RoaXMtPnNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6
U3lzdGVtV2lsbFBvd2VyT24oKSk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJ
RXh0ZW5zaW9uQ29udHJvbGxlclByb3h5LmNwcAppbmRleCAxYzY3MDJkMGRjOGYzMGRjYjA5ZWQ5
NTc1NDUzNjIyOTk4ZTVmNjBhLi4wN2E2M2Y0OWRhODU2ODA3ZTJiYTFlZTAxOTIwMWRhOGVjMzk4
MjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5z
cGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94
eS5jcHAKQEAgLTkyLDcgKzkyLDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRy
b2xsZXJQcm94eTo6aW5zcGVjdG9yRnJvbnRlbmRXaWxsQ2xvc2UoKQogCiB2b2lkIFdlYkluc3Bl
Y3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5OjpyZWdpc3RlckV4dGVuc2lvbihjb25zdCBJ
bnNwZWN0b3I6OkV4dGVuc2lvbklEJiBleHRlbnNpb25JRCwgY29uc3QgU3RyaW5nJiBkaXNwbGF5
TmFtZSwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFJlZlB0cjxBUEk6Oklu
c3BlY3RvckV4dGVuc2lvbj4sIEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I+KT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKLSAgICB3aGVuRnJvbnRlbmRIYXNMb2FkZWQoW3dlYWtUaGlzID0gbWFr
ZVdlYWtQdHIodGhpcyksIGV4dGVuc2lvbklELCBkaXNwbGF5TmFtZSwgY29tcGxldGlvbkhhbmRs
ZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKCkgbXV0YWJsZSB7CisgICAgd2hlbkZy
b250ZW5kSGFzTG9hZGVkKFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBleHRlbnNpb25J
RCwgZGlzcGxheU5hbWUsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcildICgpIG11dGFibGUgewogICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICF3ZWFrVGhpcy0+
bV9pbnNwZWN0b3JQYWdlKSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5l
eHBlY3RlZChJbnNwZWN0b3I6OkV4dGVuc2lvbkVycm9yOjpJbnZhbGlkUmVxdWVzdCkpOwogICAg
ICAgICAgICAgcmV0dXJuOwpAQCAtMTE0LDcgKzExNCw3IEBAIHZvaWQgV2ViSW5zcGVjdG9yVUlF
eHRlbnNpb25Db250cm9sbGVyUHJveHk6OnJlZ2lzdGVyRXh0ZW5zaW9uKGNvbnN0IEluc3BlY3Rv
cjo6CiAKIHZvaWQgV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHk6OnVucmVn
aXN0ZXJFeHRlbnNpb24oY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25JRCYgZXh0ZW5zaW9uSUQs
IFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDx2b2lkLCBJbnNwZWN0b3I6OkV4
dGVuc2lvbkVycm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgd2hlbkZyb250ZW5k
SGFzTG9hZGVkKFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBleHRlbnNpb25JRCwgY29t
cGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKCkgbXV0YWJsZSB7
CisgICAgd2hlbkZyb250ZW5kSGFzTG9hZGVkKFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9
LCBleHRlbnNpb25JRCwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMgfHwgIXdlYWtUaGlzLT5t
X2luc3BlY3RvclBhZ2UpIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1ha2VVbmV4
cGVjdGVkKEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I6OkludmFsaWRSZXF1ZXN0KSk7CiAgICAg
ICAgICAgICByZXR1cm47CkBAIC0xMzUsNyArMTM1LDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSUV4
dGVuc2lvbkNvbnRyb2xsZXJQcm94eTo6dW5yZWdpc3RlckV4dGVuc2lvbihjb25zdCBJbnNwZWN0
b3IKIAogdm9pZCBXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eTo6Y3JlYXRl
VGFiRm9yRXh0ZW5zaW9uKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uSUQmIGV4dGVuc2lvbklE
LCBjb25zdCBTdHJpbmcmIHRhYk5hbWUsIGNvbnN0IFVSTCYgdGFiSWNvblVSTCwgY29uc3QgVVJM
JiBzb3VyY2VVUkwsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxJbnNwZWN0
b3I6OkV4dGVuc2lvblRhYklELCBJbnNwZWN0b3I6OkV4dGVuc2lvbkVycm9yPik+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7Ci0gICAgd2hlbkZyb250ZW5kSGFzTG9hZGVkKFt3ZWFrVGhpcyA9IG1h
a2VXZWFrUHRyKHRoaXMpLCBleHRlbnNpb25JRCwgdGFiTmFtZSwgdGFiSWNvblVSTCwgc291cmNl
VVJMLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBt
dXRhYmxlIHsKKyAgICB3aGVuRnJvbnRlbmRIYXNMb2FkZWQoW3dlYWtUaGlzID0gV2Vha1B0ciB7
ICp0aGlzIH0sIGV4dGVuc2lvbklELCB0YWJOYW1lLCB0YWJJY29uVVJMLCBzb3VyY2VVUkwsIGNv
bXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUg
ewogICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICF3ZWFrVGhpcy0+bV9pbnNwZWN0b3JQYWdlKSB7
CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZChJbnNwZWN0b3I6
OkV4dGVuc2lvbkVycm9yOjpJbnZhbGlkUmVxdWVzdCkpOwogICAgICAgICAgICAgcmV0dXJuOwpA
QCAtMTQ3LDcgKzE0Nyw3IEBAIHZvaWQgV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVy
UHJveHk6OmNyZWF0ZVRhYkZvckV4dGVuc2lvbihjb25zdCBJbnNwZWN0CiAKIHZvaWQgV2ViSW5z
cGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHk6OmV2YWx1YXRlU2NyaXB0Rm9yRXh0ZW5z
aW9uKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uSUQmIGV4dGVuc2lvbklELCBjb25zdCBTdHJp
bmcmIHNjcmlwdFNvdXJjZSwgY29uc3Qgc3RkOjpvcHRpb25hbDxXVEY6OlVSTD4mIGZyYW1lVVJM
LCBjb25zdCBzdGQ6Om9wdGlvbmFsPFdURjo6VVJMPiYgY29udGV4dFNlY3VyaXR5T3JpZ2luLCBj
b25zdCBzdGQ6Om9wdGlvbmFsPGJvb2w+JiB1c2VDb250ZW50U2NyaXB0Q29udGV4dCwgV1RGOjpD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXZhbHVhdGlvblJlc3Vs
dCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgd2hlbkZyb250ZW5kSGFzTG9hZGVkKFt3
ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBleHRlbnNpb25JRCwgc2NyaXB0U291cmNlLCBm
cmFtZVVSTCwgY29udGV4dFNlY3VyaXR5T3JpZ2luLCB1c2VDb250ZW50U2NyaXB0Q29udGV4dCwg
Y29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKCkgbXV0YWJs
ZSB7CisgICAgd2hlbkZyb250ZW5kSGFzTG9hZGVkKFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhp
cyB9LCBleHRlbnNpb25JRCwgc2NyaXB0U291cmNlLCBmcmFtZVVSTCwgY29udGV4dFNlY3VyaXR5
T3JpZ2luLCB1c2VDb250ZW50U2NyaXB0Q29udGV4dCwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghd2Vha1Ro
aXMgfHwgIXdlYWtUaGlzLT5tX2luc3BlY3RvclBhZ2UpIHsKICAgICAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKG1ha2VVbmV4cGVjdGVkKEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXJyb3I6OkNvbnRl
eHREZXN0cm95ZWQpKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE3MSw3ICsxNzEsNyBAQCB2
b2lkIFdlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5OjpldmFsdWF0ZVNjcmlw
dEZvckV4dGVuc2lvbihjb25zdCBJbgogCiB2b2lkIFdlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29u
dHJvbGxlclByb3h5OjpyZWxvYWRGb3JFeHRlbnNpb24oY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNp
b25JRCYgZXh0ZW5zaW9uSUQsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8Ym9vbD4mIGlnbm9yZUNhY2hl
LCBjb25zdCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4mIHVzZXJBZ2VudCwgY29uc3Qgc3RkOjpvcHRp
b25hbDxTdHJpbmc+JiBpbmplY3RlZFNjcmlwdCwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KEluc3BlY3Rvcjo6RXh0ZW5zaW9uRXZhbHVhdGlvblJlc3VsdCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7Ci0gICAgd2hlbkZyb250ZW5kSGFzTG9hZGVkKFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRy
KHRoaXMpLCBleHRlbnNpb25JRCwgaWdub3JlQ2FjaGUsIHVzZXJBZ2VudCwgaW5qZWN0ZWRTY3Jp
cHQsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11
dGFibGUgeworICAgIHdoZW5Gcm9udGVuZEhhc0xvYWRlZChbd2Vha1RoaXMgPSBXZWFrUHRyIHsg
KnRoaXMgfSwgZXh0ZW5zaW9uSUQsIGlnbm9yZUNhY2hlLCB1c2VyQWdlbnQsIGluamVjdGVkU2Ny
aXB0LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBt
dXRhYmxlIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcyB8fCAhd2Vha1RoaXMtPm1faW5zcGVjdG9y
UGFnZSkgewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobWFrZVVuZXhwZWN0ZWQoSW5z
cGVjdG9yOjpFeHRlbnNpb25FcnJvcjo6Q29udGV4dERlc3Ryb3llZCkpOwogICAgICAgICAgICAg
cmV0dXJuOwpAQCAtMTkwLDcgKzE5MCw3IEBAIHZvaWQgV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25D
b250cm9sbGVyUHJveHk6OnJlbG9hZEZvckV4dGVuc2lvbihjb25zdCBJbnNwZWN0b3I6CiAKIHZv
aWQgV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHk6OnNob3dFeHRlbnNpb25U
YWIoY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25UYWJJRCYgZXh0ZW5zaW9uVGFiSWRlbnRpZmll
ciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDx2b2lkLCBJbnNwZWN0b3I6OkV4dGVu
c2lvbkVycm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgd2hlbkZyb250ZW5kSGFz
TG9hZGVkKFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBleHRlbnNpb25UYWJJZGVudGlm
aWVyLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBt
dXRhYmxlIHsKKyAgICB3aGVuRnJvbnRlbmRIYXNMb2FkZWQoW3dlYWtUaGlzID0gV2Vha1B0ciB7
ICp0aGlzIH0sIGV4dGVuc2lvblRhYklkZW50aWZpZXIsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgewogICAgICAgICBpZiAoIXdlYWtU
aGlzIHx8ICF3ZWFrVGhpcy0+bV9pbnNwZWN0b3JQYWdlKSB7CiAgICAgICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZChJbnNwZWN0b3I6OkV4dGVuc2lvbkVycm9yOjpDb250
ZXh0RGVzdHJveWVkKSk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0yMDQsNyArMjA0LDcgQEAg
dm9pZCBXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eTo6c2hvd0V4dGVuc2lv
blRhYihjb25zdCBJbnNwZWN0b3I6OkUKIAogdm9pZCBXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNv
bnRyb2xsZXJQcm94eTo6ZXZhbHVhdGVTY3JpcHRJbkV4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0
b3I6OkV4dGVuc2lvblRhYklEJiBleHRlbnNpb25UYWJJRCwgY29uc3QgU3RyaW5nJiBzY3JpcHRT
b3VyY2UsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChJbnNwZWN0b3I6OkV4dGVuc2lvbkV2
YWx1YXRpb25SZXN1bHQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIHdoZW5Gcm9udGVu
ZEhhc0xvYWRlZChbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgZXh0ZW5zaW9uVGFiSUQs
IHNjcmlwdFNvdXJjZSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKV0gKCkgbXV0YWJsZSB7CisgICAgd2hlbkZyb250ZW5kSGFzTG9hZGVkKFt3ZWFrVGhpcyA9
IFdlYWtQdHIgeyAqdGhpcyB9LCBleHRlbnNpb25UYWJJRCwgc2NyaXB0U291cmNlLCBjb21wbGV0
aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsKICAg
ICAgICAgaWYgKCF3ZWFrVGhpcyB8fCAhd2Vha1RoaXMtPm1faW5zcGVjdG9yUGFnZSkgewogICAg
ICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobWFrZVVuZXhwZWN0ZWQoSW5zcGVjdG9yOjpFeHRl
bnNpb25FcnJvcjo6Q29udGV4dERlc3Ryb3llZCkpOwogICAgICAgICAgICAgcmV0dXJuOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5jcHAKaW5kZXggYmI3NWJhMzU2M2VmZjJmODFmNTE4MzQxZjY3ODY5MWU4ODZjYTc4My4u
MmY1NWM2M2FiYjU1OWIxMDBkNzQ4ZGUxNWVmMDE3NmNhYTlkZGI3NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3Bw
CkBAIC00MTQsNyArNDE0LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZl
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2kKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIFdlYlBhZ2VQcm94eTo6Zm9yTW9zdFZpc2libGVXZWJQYWdlSWZB
bnkoc2Vzc2lvbklELCAqdG9wT3JpZ2luLCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0
aGlzKSwgc2Vzc2lvbklELCBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSA9IFdURk1vdmUoYXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UpLCBuZWdvdGlhdGVkTGVnYWN5VExTXShhdXRvKiBwYWdlKSBtdXRh
YmxlIHsKKyAgICBXZWJQYWdlUHJveHk6OmZvck1vc3RWaXNpYmxlV2ViUGFnZUlmQW55KHNlc3Np
b25JRCwgKnRvcE9yaWdpbiwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHNl
c3Npb25JRCwgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UgPSBXVEZNb3ZlKGF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKSwgbmVnb3RpYXRlZExlZ2FjeVRMU10oYXV0byogcGFnZSkgbXV0YWJsZSB7CiAg
ICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25QZXJtaXNz
aW9uTWFuYWdlci5jcHAKaW5kZXggYWU4ODdhMzQwYjllYmFhNDgxNDdmNWQyMjBlNjYxN2FlNTJi
NDMxYy4uODRiOTQxZWMwYTQzZjBkNzllYzI4Zjk2MWY0NWE2OTgxZWQzMTk1NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFu
YWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25Q
ZXJtaXNzaW9uTWFuYWdlci5jcHAKQEAgLTE4NSw3ICsxODUsNyBAQCB2b2lkIFNwZWVjaFJlY29n
bml0aW9uUGVybWlzc2lvbk1hbmFnZXI6OnJlcXVlc3RTcGVlY2hSZWNvZ25pdGlvblNlcnZpY2VB
Y2Nlc3MoKQogICAgIEFTU0VSVChtX3NwZWVjaFJlY29nbml0aW9uU2VydmljZUNoZWNrID09IENo
ZWNrUmVzdWx0OjpVbmtub3duKTsKIAogI2lmIEhBVkUoU1BFRUNIUkVDT0dOSVpFUikKLSAgICBy
ZXF1ZXN0U3BlZWNoUmVjb2duaXRpb25BY2Nlc3MoW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQ
dHIodGhpcyldKGJvb2wgYXV0aG9yaXplZCkgbXV0YWJsZSB7CisgICAgcmVxdWVzdFNwZWVjaFJl
Y29nbml0aW9uQWNjZXNzKFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XShib29s
IGF1dGhvcml6ZWQpIG11dGFibGUgewogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAg
ICAgcmV0dXJuOwogCkBAIC0yMDUsNyArMjA1LDcgQEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvblBl
cm1pc3Npb25NYW5hZ2VyOjpyZXF1ZXN0TWljcm9waG9uZUFjY2VzcygpCiAgICAgQVNTRVJUKG1f
bWljcm9waG9uZUNoZWNrID09IENoZWNrUmVzdWx0OjpVbmtub3duKTsKIAogI2lmIEhBVkUoQVZD
QVBUVVJFREVWSUNFKQotICAgIHJlcXVlc3RBVkNhcHR1cmVBY2Nlc3NGb3JUeXBlKE1lZGlhUGVy
bWlzc2lvblR5cGU6OkF1ZGlvLCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0o
Ym9vbCBhdXRob3JpemVkKSB7CisgICAgcmVxdWVzdEFWQ2FwdHVyZUFjY2Vzc0ZvclR5cGUoTWVk
aWFQZXJtaXNzaW9uVHlwZTo6QXVkaW8sIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhp
cyB9XShib29sIGF1dGhvcml6ZWQpIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAg
ICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIuY3BwCmluZGV4IDk2N2ZjNjVjOWUwMjMxMTEyOGM1MWIxYjUzNjZlZjdh
OWIyYjA5YWQuLmM1MmNlMTFkODNkMjc5ZjYyZGFlMDgwMGRkZmUyODc4NzViYjliN2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5j
cHAKQEAgLTYzLDcgKzYzLDcgQEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RhcnQo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWQKIAogdm9pZCBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcjo6cmVxdWVzdFBlcm1pc3Npb25Gb3JSZXF1ZXN0KFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICBtX3Blcm1pc3Npb25D
aGVja2VyKHJlcXVlc3QsIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCB3ZWFr
UmVxdWVzdCA9IG1ha2VXZWFrUHRyKHJlcXVlc3QpXShhdXRvIGVycm9yKSBtdXRhYmxlIHsKKyAg
ICBtX3Blcm1pc3Npb25DaGVja2VyKHJlcXVlc3QsIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIg
eyAqdGhpcyB9LCB3ZWFrUmVxdWVzdCA9IFdlYWtQdHIgeyByZXF1ZXN0IH1dKGF1dG8gZXJyb3Ip
IG11dGFibGUgewogICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICF3ZWFrUmVxdWVzdCkKICAgICAg
ICAgICAgIHJldHVybjsKIApAQCAtODcsNyArODcsNyBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9u
U2VydmVyOjpoYW5kbGVSZXF1ZXN0KFVuaXF1ZVJlZjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bgogICAgIH0KIAogICAgIGF1dG8gY2xpZW50SWRlbnRpZmllciA9IHJlcXVlc3QtPmNsaWVudElk
ZW50aWZpZXIoKTsKLSAgICBtX3JlY29nbml6ZXIgPSBtYWtlVW5pcXVlPFdlYkNvcmU6OlNwZWVj
aFJlY29nbml6ZXI+KFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXShhdXRvJiB1
cGRhdGUpIHsKKyAgICBtX3JlY29nbml6ZXIgPSBtYWtlVW5pcXVlPFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml6ZXI+KFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XShhdXRvJiB1cGRh
dGUpIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDIxZWU0M2FlYTZlMjI4NGVmNmIw
MjEyODk5NzFjNmUwZDZkYjIwMGYuLjgzZTAzYmEyNzY4OThkOWU0NjUzM2NjNjdjMTQyZDk3NDcy
MzQ2ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTI3Miw3ICsy
NzIsNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpmaW5p
c2hHcmFudGluZ1JlcXVlc3QoVXNlck1lZGlhUGVybQogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgbV9wYWdlLndpbGxTdGFydENhcHR1cmUocmVxdWVzdCwgW3RoaXMsIHdlYWtUaGlzID0g
bWFrZVdlYWtQdHIodGhpcyksIHN0cm9uZ1JlcXVlc3QgPSBSZWYgeyByZXF1ZXN0IH1dKCkgbXV0
YWJsZSB7CisgICAgbV9wYWdlLndpbGxTdGFydENhcHR1cmUocmVxdWVzdCwgW3RoaXMsIHdlYWtU
aGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHN0cm9uZ1JlcXVlc3QgPSBSZWYgeyByZXF1ZXN0IH1d
KCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47
CiAKQEAgLTYwNyw3ICs2MDcsNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5Ojpwcm9jZXNzVXNlck1lZGlhUGVybWlzc2lvblZhbGlkUmVxdQogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgcmVxdWVzdFN5c3RlbVZhbGlkYXRpb24obV9wYWdlLCAqbV9j
dXJyZW50VXNlck1lZGlhUmVxdWVzdCwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldKGJv
b2wgaXNPSykgeworICAgIHJlcXVlc3RTeXN0ZW1WYWxpZGF0aW9uKG1fcGFnZSwgKm1fY3VycmVu
dFVzZXJNZWRpYVJlcXVlc3QsIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XShib29sIGlz
T0spIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKIApAQCAt
NzM3LDcgKzczNyw3IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHk6OmNvbXB1dGVGaWx0ZXJlZERldmljZUxpc3QoYm9vbCByZXZlCiAgICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIGRlZmF1bHRNYXhpbXVtQ2FtZXJhQ291bnQgPSAxOwogICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBkZWZhdWx0TWF4aW11bU1pY3JvcGhvbmVDb3VudCA9IDE7CiAKLSAgICBwbGF0
Zm9ybUdldE1lZGlhU3RyZWFtRGV2aWNlcyhbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0
aGlzKSwgcmV2ZWFsSWRzQW5kTGFiZWxzLCBjb21wbGV0aW9uID0gV1RGTW92ZShjb21wbGV0aW9u
KV0oYXV0byYmIGRldmljZXMpIG11dGFibGUgeworICAgIHBsYXRmb3JtR2V0TWVkaWFTdHJlYW1E
ZXZpY2VzKFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCByZXZlYWxJZHNBbmRM
YWJlbHMsIGNvbXBsZXRpb24gPSBXVEZNb3ZlKGNvbXBsZXRpb24pXShhdXRvJiYgZGV2aWNlcykg
bXV0YWJsZSB7CiAKICAgICAgICAgaWYgKCF3ZWFrVGhpcykgewogICAgICAgICAgICAgY29tcGxl
dGlvbih7IH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2ViRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYkRldmljZU9yaWVudGF0aW9uQW5k
TW90aW9uQWNjZXNzQ29udHJvbGxlci5jcHAKaW5kZXggYzM5Y2UwNTc0MGFkOTA2Nzk0NzQ0ZGE1
OWRlZjdmOTVhMTIxOTJiMC4uNTUyYzkzYTQzMGIwYjI5ZTY5ODM1NDYxMjA1M2FjYmViZmJjNGNk
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2ViRGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlv
bkFjY2Vzc0NvbnRyb2xsZXIuY3BwCkBAIC01MCw3ICs1MCw3IEBAIHZvaWQgV2ViRGV2aWNlT3Jp
ZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyOjpzaG91bGRBbGxvd0FjY2VzcyhXZWJQ
YWdlUHJvCiAgICAgaWYgKHBlbmRpbmdSZXF1ZXN0cy5zaXplKCkgPiAxKQogICAgICAgICByZXR1
cm47CiAKLSAgICBwYWdlLnVpQ2xpZW50KCkuc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFu
ZE1vdGlvbkFjY2VzcyhwYWdlLCBmcmFtZSwgV1RGTW92ZShmcmFtZUluZm8pLCBbdGhpcywgd2Vh
a1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgb3JpZ2luRGF0YV0oYm9vbCBncmFudGVkKSBtdXRh
YmxlIHsKKyAgICBwYWdlLnVpQ2xpZW50KCkuc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFu
ZE1vdGlvbkFjY2VzcyhwYWdlLCBmcmFtZSwgV1RGTW92ZShmcmFtZUluZm8pLCBbdGhpcywgd2Vh
a1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgb3JpZ2luRGF0YV0oYm9vbCBncmFudGVkKSBtdXRh
YmxlIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgbV9kZXZpY2VPcmllbnRhdGlvblBlcm1pc3Npb25EZWNpc2lvbnMuc2V0KG9yaWdpbkRhdGEs
IGdyYW50ZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVMZWdhY3lDRE1GYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeS5jcHAKaW5kZXggZGZmNzZkMTllOTE1MDhj
MzljYmU0ZWNkYWU2ODUyM2FkODY5ZGViMC4uNmFmNzAwYjVjYWQyZTJlMjVjNDRkNjI3NmRlODMz
NTBhNGE4YTA1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVMZWdhY3lDRE1GYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUxlZ2FjeUNETUZhY3RvcnkuY3BwCkBAIC01MiwxNSArNTIsMTUg
QEAgdm9pZCBSZW1vdGVMZWdhY3lDRE1GYWN0b3J5OjpyZWdpc3RlckZhY3RvcnkoKQogewogICAg
IExlZ2FjeUNETTo6Y2xlYXJGYWN0b3JpZXMoKTsKICAgICBMZWdhY3lDRE06OnJlZ2lzdGVyQ0RN
RmFjdG9yeSgKLSAgICAgICAgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldIChMZWdhY3lD
RE0qIHByaXZhdGVDRE0pIC0+IHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDRE1Qcml2YXRlSW50
ZXJmYWNlPiB7CisgICAgICAgIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XSAoTGVnYWN5
Q0RNKiBwcml2YXRlQ0RNKSAtPiBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q0RNUHJpdmF0ZUlu
dGVyZmFjZT4gewogICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQogICAgICAgICAgICAgICAgIHJl
dHVybiB3ZWFrVGhpcy0+Y3JlYXRlQ0RNKHByaXZhdGVDRE0pOwogICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAgICAgICAgIH0sCi0gICAgICAgIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRo
aXMpXSAoY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pIHsKKyAgICAgICAgW3dlYWtUaGlzID0gV2Vh
a1B0ciB7ICp0aGlzIH1dIChjb25zdCBTdHJpbmcmIGtleVN5c3RlbSkgewogICAgICAgICAgICAg
cmV0dXJuIHdlYWtUaGlzID8gd2Vha1RoaXMtPnN1cHBvcnRzS2V5U3lzdGVtKGtleVN5c3RlbSkg
OiBmYWxzZTsKICAgICAgICAgfSwKLSAgICAgICAgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhp
cyldIChjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkgewor
ICAgICAgICBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0gKGNvbnN0IFN0cmluZyYga2V5
U3lzdGVtLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKSB7CiAgICAgICAgICAgICByZXR1cm4gd2Vh
a1RoaXMgPyB3ZWFrVGhpcy0+c3VwcG9ydHNLZXlTeXN0ZW1BbmRNaW1lVHlwZShrZXlTeXN0ZW0s
IG1pbWVUeXBlKSA6IGZhbHNlOwogICAgICAgICB9CiAgICAgKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFFbmdpbmVDb25maWd1cmF0
aW9uRmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZU1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnkuY3BwCmluZGV4IGVmNTcwY2IxZThlOWE4
NjUxMGE1NjI1YWEwYTY3NDhmMGRmMjkwNmMuLjBhZjFmZDhhNTNmMTg1N2U5NDE0Mzg4ZWM4NDQ2
MDYzZDc2OGQyMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvUmVtb3RlTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYUVuZ2luZUNvbmZpZ3VyYXRp
b25GYWN0b3J5LmNwcApAQCAtNTEsNyArNTEsNyBAQCB2b2lkIFJlbW90ZU1lZGlhRW5naW5lQ29u
ZmlndXJhdGlvbkZhY3Rvcnk6OnJlZ2lzdGVyRmFjdG9yeSgpCiB7CiAgICAgTWVkaWFFbmdpbmVD
b25maWd1cmF0aW9uRmFjdG9yeTo6Y2xlYXJGYWN0b3JpZXMoKTsKIAotICAgIGF1dG8gY3JlYXRl
RGVjb2RpbmdDb25maWd1cmF0aW9uID0gW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldIChN
ZWRpYURlY29kaW5nQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24sIE1lZGlhRW5naW5lQ29u
ZmlndXJhdGlvbkZhY3Rvcnk6OkRlY29kaW5nQ29uZmlndXJhdGlvbkNhbGxiYWNrJiYgY2FsbGJh
Y2spIHsKKyAgICBhdXRvIGNyZWF0ZURlY29kaW5nQ29uZmlndXJhdGlvbiA9IFt3ZWFrVGhpcyA9
IFdlYWtQdHIgeyAqdGhpcyB9XSAoTWVkaWFEZWNvZGluZ0NvbmZpZ3VyYXRpb24mJiBjb25maWd1
cmF0aW9uLCBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5OjpEZWNvZGluZ0NvbmZpZ3Vy
YXRpb25DYWxsYmFjayYmIGNhbGxiYWNrKSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpIHsKICAg
ICAgICAgICAgIGNhbGxiYWNrKHt7IH0sIFdURk1vdmUoY29uZmlndXJhdGlvbil9KTsKICAgICAg
ICAgICAgIHJldHVybjsKQEAgLTYzLDcgKzYzLDcgQEAgdm9pZCBSZW1vdGVNZWRpYUVuZ2luZUNv
bmZpZ3VyYXRpb25GYWN0b3J5OjpyZWdpc3RlckZhY3RvcnkoKQogI2lmIFBMQVRGT1JNKENPQ09B
KQogICAgIE1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3Rvcnk6OkNyZWF0ZUVuY29kaW5nQ29u
ZmlndXJhdGlvbiBjcmVhdGVFbmNvZGluZ0NvbmZpZ3VyYXRpb24gPSBudWxscHRyOwogI2Vsc2UK
LSAgICBhdXRvIGNyZWF0ZUVuY29kaW5nQ29uZmlndXJhdGlvbiA9IFt3ZWFrVGhpcyA9IG1ha2VX
ZWFrUHRyKHRoaXMpXSAoTWVkaWFFbmNvZGluZ0NvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9u
LCBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5OjpFbmNvZGluZ0NvbmZpZ3VyYXRpb25D
YWxsYmFjayYmIGNhbGxiYWNrKSB7CisgICAgYXV0byBjcmVhdGVFbmNvZGluZ0NvbmZpZ3VyYXRp
b24gPSBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0gKE1lZGlhRW5jb2RpbmdDb25maWd1
cmF0aW9uJiYgY29uZmlndXJhdGlvbiwgTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeTo6
RW5jb2RpbmdDb25maWd1cmF0aW9uQ2FsbGJhY2smJiBjYWxsYmFjaykgewogICAgICAgICBpZiAo
IXdlYWtUaGlzKSB7CiAgICAgICAgICAgICBjYWxsYmFjayh7eyB9LCBXVEZNb3ZlKGNvbmZpZ3Vy
YXRpb24pfSk7CiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVy
bmFsVW5pdE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMv
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyLmNwcAppbmRl
eCBiZDg3ZmQxMzAzMjUxODg5OTZjYTQzNmY1MzE0NmQyNDRhYTQ1ZTdmLi5lZGY4NjdlODE1M2Uz
MGQ2NzA5YTU2NWI2NjRjN2VjZjE3Y2JjMjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL3dlYnJ0Yy9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFs
VW5pdE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRj
L0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0TWFuYWdlci5jcHAKQEAg
LTEyNyw3ICsxMjcsNyBAQCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5p
dE1hbmFnZXI6OlByb3h5Ojp+UHJveHkoKQogCiB2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVySW50ZXJuYWxVbml0TWFuYWdlcjo6UHJveHk6OmNyZWF0ZVJlbW90ZVVuaXQoKQogewot
ICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCku
Y29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyOjpDcmVhdGVVbml0IHsgbV9p
ZGVudGlmaWVyIH0sIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXShhdXRvJiYgZGVzY3Jp
cHRpb24sIGF1dG8gZnJhbWVDaHVua1NpemUpIHsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5j
UmVwbHkoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJu
YWxVbml0TWFuYWdlcjo6Q3JlYXRlVW5pdCB7IG1faWRlbnRpZmllciB9LCBbd2Vha1RoaXMgPSBX
ZWFrUHRyIHsgKnRoaXMgfV0oYXV0byYmIGRlc2NyaXB0aW9uLCBhdXRvIGZyYW1lQ2h1bmtTaXpl
KSB7CiAgICAgICAgIGlmICh3ZWFrVGhpcyAmJiBmcmFtZUNodW5rU2l6ZSkKICAgICAgICAgICAg
IHdlYWtUaGlzLT5pbml0aWFsaXplKGRlc2NyaXB0aW9uLCBmcmFtZUNodW5rU2l6ZSk7CiAgICAg
fSwgMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9N
ZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dl
YnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKaW5kZXggMTIzMGRhN2M1NDNkODEzMTg5MDE2
NjA4YzE1Y2VmMTcyMTU3ZmVlOS4uMDk3NzkxZWE4YjQ3ZDZlNTBmNjdlZGRkZmY2Y2U1MjYxYTVi
NjQ0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVk
aWFSZWNvcmRlclByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
d2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcApAQCAtNjUsNyArNjUsNyBAQCB2b2lkIE1l
ZGlhUmVjb3JkZXJQcml2YXRlOjpzdGFydFJlY29yZGluZyhTdGFydFJlY29yZGluZ0NhbGxiYWNr
JiYgY2FsbGJhY2spCiAgICAgaWYgKHNlbGVjdGVkVHJhY2tzLmF1ZGlvVHJhY2spCiAgICAgICAg
IG1fcmluZ0J1ZmZlciA9IG1ha2VVbmlxdWU8Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFNo
YXJlZFJpbmdCdWZmZXJTdG9yYWdlPihzdGQ6OmJpbmQoJk1lZGlhUmVjb3JkZXJQcml2YXRlOjpz
dG9yYWdlQ2hhbmdlZCwgdGhpcywgc3RkOjpwbGFjZWhvbGRlcnM6Ol8xLCBzdGQ6OnBsYWNlaG9s
ZGVyczo6XzIsIHN0ZDo6cGxhY2Vob2xkZXJzOjpfMykpKTsKIAotICAgIG1fY29ubmVjdGlvbi0+
c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlcjo6
Q3JlYXRlUmVjb3JkZXIgeyBtX2lkZW50aWZpZXIsICEhc2VsZWN0ZWRUcmFja3MuYXVkaW9UcmFj
aywgISFzZWxlY3RlZFRyYWNrcy52aWRlb1RyYWNrLCBtX29wdGlvbnMgfSwgW3RoaXMsIHdlYWtU
aGlzID0gbWFrZVdlYWtQdHIodGhpcyksIGF1ZGlvVHJhY2sgPSBSZWZQdHIgeyBzZWxlY3RlZFRy
YWNrcy5hdWRpb1RyYWNrIH0sIHZpZGVvVHJhY2sgPSBSZWZQdHIgeyBzZWxlY3RlZFRyYWNrcy52
aWRlb1RyYWNrIH0sIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGF1dG8mJiBleGNlcHRp
b24sIFN0cmluZyYmIG1pbWVUeXBlLCB1bnNpZ25lZCBhdWRpb0JpdFJhdGUsIHVuc2lnbmVkIHZp
ZGVvQml0UmF0ZSkgbXV0YWJsZSB7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVw
bHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyOjpDcmVhdGVSZWNvcmRlciB7
IG1faWRlbnRpZmllciwgISFzZWxlY3RlZFRyYWNrcy5hdWRpb1RyYWNrLCAhIXNlbGVjdGVkVHJh
Y2tzLnZpZGVvVHJhY2ssIG1fb3B0aW9ucyB9LCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsg
KnRoaXMgfSwgYXVkaW9UcmFjayA9IFJlZlB0ciB7IHNlbGVjdGVkVHJhY2tzLmF1ZGlvVHJhY2sg
fSwgdmlkZW9UcmFjayA9IFJlZlB0ciB7IHNlbGVjdGVkVHJhY2tzLnZpZGVvVHJhY2sgfSwgY2Fs
bGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYXV0byYmIGV4Y2VwdGlvbiwgU3RyaW5nJiYgbWlt
ZVR5cGUsIHVuc2lnbmVkIGF1ZGlvQml0UmF0ZSwgdW5zaWduZWQgdmlkZW9CaXRSYXRlKSBtdXRh
YmxlIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykgewogICAgICAgICAgICAgY2FsbGJhY2soRXhj
ZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSwgMCwgMCk7CiAgICAgICAgICAgICByZXR1cm47
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJy
dGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcAppbmRleCAwYWU4MGU1MDgxODlmZDI0NTk2
NTkzMDExZjNlODM2NDk2NzIzNTM4Li5mZGJhMGRiYzdlNjIwMmRmMGI3NWUxNTllOGZkY2UyZjky
NGQ2YTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9T
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAKQEAgLTU5LDcgKzU5LDcg
QEAgU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOjpTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIoU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWcKIAogdm9pZCBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXI6OmluaXRpYWxpemUoYm9vbCBoaWRlUm9vdExheWVyLCBJbnRTaXplIHNpemUsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spCiB7Ci0gICAgbV9jb25uZWN0aW9uLT5z
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ck1hbmFnZXI6OkNyZWF0ZUxheWVyIHsgbV9pZGVudGlmaWVyLCBoaWRlUm9vdExheWVyLCBzaXpl
IH0sIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBjYWxsYmFjayA9IFdURk1v
dmUoY2FsbGJhY2spXShhdXRvIGNvbnRleHRJZCkgbXV0YWJsZSB7CisgICAgbV9jb25uZWN0aW9u
LT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllck1hbmFnZXI6OkNyZWF0ZUxheWVyIHsgbV9pZGVudGlmaWVyLCBoaWRlUm9vdExheWVyLCBz
aXplIH0sIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBjYWxsYmFjayA9IFdU
Rk1vdmUoY2FsbGJhY2spXShhdXRvIGNvbnRleHRJZCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICgh
d2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soZmFsc2UpOwogICAgICAgICBp
ZiAoY29udGV4dElkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3Bl
Y3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIu
Y3BwCmluZGV4IDk5OGQxOGUwNThlNDAzNjhmZDQ3YTA2NmRhNDRmNmE4NzNjZGU0MjYuLmVlMzky
NjA4MWI4M2Q5NjE2YWU1ZTlkY2U0MjA4MWU0ZDNiMGVjNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3Bl
Y3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5jcHAKQEAgLTEyMCw3ICsxMjAsNyBAQCB2b2lkIFdl
Ykluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlcjo6cmVnaXN0ZXJFeHRlbnNpb24oY29uc3Qg
SW5zcGVjdG9yOjpFeHRlbgogICAgICAgICBKU09OOjpWYWx1ZTo6Y3JlYXRlKGV4dGVuc2lvbklE
KSwKICAgICAgICAgSlNPTjo6VmFsdWU6OmNyZWF0ZShkaXNwbGF5TmFtZSksCiAgICAgfTsKLSAg
ICBtX2Zyb250ZW5kQ2xpZW50LT5mcm9udGVuZEFQSURpc3BhdGNoZXIoKS5kaXNwYXRjaENvbW1h
bmRXaXRoUmVzdWx0QXN5bmMoInJlZ2lzdGVyRXh0ZW5zaW9uIl9zLCBXVEZNb3ZlKGFyZ3VtZW50
cyksIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZEFQSURp
c3BhdGNoZXI6OkV2YWx1YXRpb25SZXN1bHQmJiByZXN1bHQpIG11dGFibGUgeworICAgIG1fZnJv
bnRlbmRDbGllbnQtPmZyb250ZW5kQVBJRGlzcGF0Y2hlcigpLmRpc3BhdGNoQ29tbWFuZFdpdGhS
ZXN1bHRBc3luYygicmVnaXN0ZXJFeHRlbnNpb24iX3MsIFdURk1vdmUoYXJndW1lbnRzKSwgW3dl
YWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcildKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hl
cjo6RXZhbHVhdGlvblJlc3VsdCYmIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghd2Vh
a1RoaXMgfHwgIXJlc3VsdCkgewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobWFrZVVu
ZXhwZWN0ZWQoSW5zcGVjdG9yOjpFeHRlbnNpb25FcnJvcjo6Q29udGV4dERlc3Ryb3llZCkpOwog
ICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTQzLDcgKzE0Myw3IEBAIHZvaWQgV2ViSW5zcGVjdG9y
VUlFeHRlbnNpb25Db250cm9sbGVyOjp1bnJlZ2lzdGVyRXh0ZW5zaW9uKGNvbnN0IEluc3BlY3Rv
cjo6RXh0CiAgICAgfQogCiAgICAgVmVjdG9yPFJlZjxKU09OOjpWYWx1ZT4+IGFyZ3VtZW50cyB7
IEpTT046OlZhbHVlOjpjcmVhdGUoZXh0ZW5zaW9uSUQpIH07Ci0gICAgbV9mcm9udGVuZENsaWVu
dC0+ZnJvbnRlbmRBUElEaXNwYXRjaGVyKCkuZGlzcGF0Y2hDb21tYW5kV2l0aFJlc3VsdEFzeW5j
KCJ1bnJlZ2lzdGVyRXh0ZW5zaW9uIl9zLCBXVEZNb3ZlKGFyZ3VtZW50cyksIFt3ZWFrVGhpcyA9
IG1ha2VXZWFrUHRyKHRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpXShXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OkV2YWx1
YXRpb25SZXN1bHQmJiByZXN1bHQpIG11dGFibGUgeworICAgIG1fZnJvbnRlbmRDbGllbnQtPmZy
b250ZW5kQVBJRGlzcGF0Y2hlcigpLmRpc3BhdGNoQ29tbWFuZFdpdGhSZXN1bHRBc3luYygidW5y
ZWdpc3RlckV4dGVuc2lvbiJfcywgV1RGTW92ZShhcmd1bWVudHMpLCBbd2Vha1RoaXMgPSBXZWFr
UHRyIHsgKnRoaXMgfSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKV0oV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpFdmFsdWF0aW9u
UmVzdWx0JiYgcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcyB8fCAhcmVz
dWx0KSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZChJbnNw
ZWN0b3I6OkV4dGVuc2lvbkVycm9yOjpDb250ZXh0RGVzdHJveWVkKSk7CiAgICAgICAgICAgICBy
ZXR1cm47CkBAIC0xODMsNyArMTgzLDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNv
bnRyb2xsZXI6OmNyZWF0ZVRhYkZvckV4dGVuc2lvbihjb25zdCBJbnNwZWN0b3I6OkUKICAgICAg
ICAgSlNPTjo6VmFsdWU6OmNyZWF0ZSh0YWJJY29uVVJMLnN0cmluZygpKSwKICAgICAgICAgSlNP
Tjo6VmFsdWU6OmNyZWF0ZShzb3VyY2VVUkwuc3RyaW5nKCkpLAogICAgIH07Ci0gICAgbV9mcm9u
dGVuZENsaWVudC0+ZnJvbnRlbmRBUElEaXNwYXRjaGVyKCkuZGlzcGF0Y2hDb21tYW5kV2l0aFJl
c3VsdEFzeW5jKCJjcmVhdGVUYWJGb3JFeHRlbnNpb24iX3MsIFdURk1vdmUoYXJndW1lbnRzKSwg
W3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcildKEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6RXZh
bHVhdGlvblJlc3VsdCYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgbV9mcm9udGVuZENsaWVudC0+
ZnJvbnRlbmRBUElEaXNwYXRjaGVyKCkuZGlzcGF0Y2hDb21tYW5kV2l0aFJlc3VsdEFzeW5jKCJj
cmVhdGVUYWJGb3JFeHRlbnNpb24iX3MsIFdURk1vdmUoYXJndW1lbnRzKSwgW3dlYWtUaGlzID0g
V2Vha1B0ciB7ICp0aGlzIH0sIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcildKEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6RXZhbHVhdGlvblJlc3Vs
dCYmIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMgfHwgIXJlc3VsdCkg
ewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobWFrZVVuZXhwZWN0ZWQoSW5zcGVjdG9y
OjpFeHRlbnNpb25FcnJvcjo6Q29udGV4dERlc3Ryb3llZCkpOwogICAgICAgICAgICAgcmV0dXJu
OwpAQCAtMjM0LDcgKzIzNCw3IEBAIHZvaWQgV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9s
bGVyOjpldmFsdWF0ZVNjcmlwdEZvckV4dGVuc2lvbihjb25zdCBJbnNwZWN0CiAgICAgICAgIFdU
Rk1vdmUob3B0aW9uYWxBcmd1bWVudHMpCiAgICAgfTsKIAotICAgIG1fZnJvbnRlbmRDbGllbnQt
PmZyb250ZW5kQVBJRGlzcGF0Y2hlcigpLmRpc3BhdGNoQ29tbWFuZFdpdGhSZXN1bHRBc3luYygi
ZXZhbHVhdGVTY3JpcHRGb3JFeHRlbnNpb24iX3MsIFdURk1vdmUoYXJndW1lbnRzKSwgW3dlYWtU
aGlzID0gbWFrZVdlYWtQdHIodGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcildKEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6RXZhbHVhdGlv
blJlc3VsdCYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgbV9mcm9udGVuZENsaWVudC0+ZnJvbnRl
bmRBUElEaXNwYXRjaGVyKCkuZGlzcGF0Y2hDb21tYW5kV2l0aFJlc3VsdEFzeW5jKCJldmFsdWF0
ZVNjcmlwdEZvckV4dGVuc2lvbiJfcywgV1RGTW92ZShhcmd1bWVudHMpLCBbd2Vha1RoaXMgPSBX
ZWFrUHRyIHsgKnRoaXMgfSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKV0oSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyOjpFdmFsdWF0aW9uUmVzdWx0
JiYgcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykgewogICAgICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoeyB9LCBzdGQ6Om51bGxvcHQsIEluc3BlY3Rvcjo6RXh0ZW5z
aW9uRXJyb3I6OkNvbnRleHREZXN0cm95ZWQpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMzA0
LDcgKzMwNCw3IEBAIHZvaWQgV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyOjpyZWxv
YWRGb3JFeHRlbnNpb24oY29uc3QgSW5zcGVjdG9yOjpFeHRlCiAgICAgICAgIFdURk1vdmUob3B0
aW9uYWxBcmd1bWVudHMpCiAgICAgfTsKIAotICAgIG1fZnJvbnRlbmRDbGllbnQtPmZyb250ZW5k
QVBJRGlzcGF0Y2hlcigpLmRpc3BhdGNoQ29tbWFuZFdpdGhSZXN1bHRBc3luYygicmVsb2FkRm9y
RXh0ZW5zaW9uIl9zLCBXVEZNb3ZlKGFyZ3VtZW50cyksIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRy
KHRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShJ
bnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OkV2YWx1YXRpb25SZXN1bHQmJiByZXN1bHQp
IG11dGFibGUgeworICAgIG1fZnJvbnRlbmRDbGllbnQtPmZyb250ZW5kQVBJRGlzcGF0Y2hlcigp
LmRpc3BhdGNoQ29tbWFuZFdpdGhSZXN1bHRBc3luYygicmVsb2FkRm9yRXh0ZW5zaW9uIl9zLCBX
VEZNb3ZlKGFyZ3VtZW50cyksIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBjb21wbGV0
aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShJbnNwZWN0b3JGcm9udGVu
ZEFQSURpc3BhdGNoZXI6OkV2YWx1YXRpb25SZXN1bHQmJiByZXN1bHQpIG11dGFibGUgewogICAg
ICAgICBpZiAoIXdlYWtUaGlzKSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihJbnNw
ZWN0b3I6OkV4dGVuc2lvbkVycm9yOjpDb250ZXh0RGVzdHJveWVkKTsKICAgICAgICAgICAgIHJl
dHVybjsKQEAgLTMzNyw3ICszMzcsNyBAQCB2b2lkIFdlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29u
dHJvbGxlcjo6c2hvd0V4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0b3I6OkV4dGVucwogICAgICAg
ICBKU09OOjpWYWx1ZTo6Y3JlYXRlKGV4dGVuc2lvblRhYklkZW50aWZpZXIpLAogICAgIH07CiAK
LSAgICBtX2Zyb250ZW5kQ2xpZW50LT5mcm9udGVuZEFQSURpc3BhdGNoZXIoKS5kaXNwYXRjaENv
bW1hbmRXaXRoUmVzdWx0QXN5bmMoInNob3dFeHRlbnNpb25UYWIiX3MsIFdURk1vdmUoYXJndW1l
bnRzKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0g
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hl
cjo6RXZhbHVhdGlvblJlc3VsdCYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgbV9mcm9udGVuZENs
aWVudC0+ZnJvbnRlbmRBUElEaXNwYXRjaGVyKCkuZGlzcGF0Y2hDb21tYW5kV2l0aFJlc3VsdEFz
eW5jKCJzaG93RXh0ZW5zaW9uVGFiIl9zLCBXVEZNb3ZlKGFyZ3VtZW50cyksIFt3ZWFrVGhpcyA9
IFdlYWtQdHIgeyAqdGhpcyB9LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpXShJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OkV2YWx1YXRpb25SZXN1
bHQmJiByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAoIXdlYWtUaGlzKSB7CiAgICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZChJbnNwZWN0b3I6OkV4dGVuc2lv
bkVycm9yOjpDb250ZXh0RGVzdHJveWVkKSk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0zNzMs
NyArMzczLDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXI6OmV2YWx1
YXRlU2NyaXB0SW5FeHRlbnNpb25UYWIoY29uc3QgSW5zcGUKICAgICAgICAgSlNPTjo6VmFsdWU6
OmNyZWF0ZShzY3JpcHRTb3VyY2UpLAogICAgIH07CiAKLSAgICBtX2Zyb250ZW5kQ2xpZW50LT5m
cm9udGVuZEFQSURpc3BhdGNoZXIoKS5kaXNwYXRjaENvbW1hbmRXaXRoUmVzdWx0QXN5bmMoImV2
YWx1YXRlU2NyaXB0SW5FeHRlbnNpb25UYWIiX3MsIFdURk1vdmUoYXJndW1lbnRzKSwgW3dlYWtU
aGlzID0gbWFrZVdlYWtQdHIodGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcildKEluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6RXZhbHVhdGlv
blJlc3VsdCYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgbV9mcm9udGVuZENsaWVudC0+ZnJvbnRl
bmRBUElEaXNwYXRjaGVyKCkuZGlzcGF0Y2hDb21tYW5kV2l0aFJlc3VsdEFzeW5jKCJldmFsdWF0
ZVNjcmlwdEluRXh0ZW5zaW9uVGFiIl9zLCBXVEZNb3ZlKGFyZ3VtZW50cyksIFt3ZWFrVGhpcyA9
IFdlYWtQdHIgeyAqdGhpcyB9LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpXShJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OkV2YWx1YXRpb25SZXN1
bHQmJiByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAoIXdlYWtUaGlzKSB7CiAgICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0sIHN0ZDo6bnVsbG9wdCwgSW5zcGVjdG9yOjpFeHRl
bnNpb25FcnJvcjo6Q29udGV4dERlc3Ryb3llZCk7CiAgICAgICAgICAgICByZXR1cm47CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTZXNzaW9uL1JlbW90ZU1lZGlh
U2Vzc2lvbkNvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVNl
c3Npb24vUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCmluZGV4IDY3ODExNjI0MGJk
NGFmOTczNWVjOGI5MDg1OTNiN2I0OTAyMmU5MDUuLmUxMWJlMGEzZjZkMzdkODQ3NDdkYjdjZjc5
N2U2MzJmNmIxYWYzZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRp
YVNlc3Npb24vUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVNlc3Npb24vUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IuY3BwCkBAIC02Niw3ICs2Niw3IEBAIFJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yOjp+
UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3IoKQogdm9pZCBSZW1vdGVNZWRpYVNlc3Npb25D
b29yZGluYXRvcjo6am9pbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6RXhjZXB0aW9uPiYmKT4mJiBjYWxsYmFjaykKIHsKICAgICBBTFdBWVNfTE9HX0lGX1BP
U1NJQkxFKExPR0lERU5USUZJRVIpOwotICAgIG1fcGFnZS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OkpvaW4geyB9LCBbd2Vh
a1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0o
YXV0byYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CisgICAgbV9wYWdlLnNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eTo6Sm9pbiB7IH0s
IFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJh
Y2spXShhdXRvJiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykg
ewogICAgICAgICAgICAgY2FsbGJhY2soRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7
CiAgICAgICAgICAgICByZXR1cm47CkBAIC04OSw3ICs4OSw3IEBAIHZvaWQgUmVtb3RlTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3I6OmxlYXZlKCkKIHZvaWQgUmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRp
bmF0b3I6OnNlZWtUbyhkb3VibGUgdGltZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbj4mJik+JiYgY2FsbGJhY2spCiB7CiAgICAgQUxXQVlT
X0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVSLCB0aW1lKTsKLSAgICBtX3BhZ2Uuc2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvclByb3h5
OjpDb29yZGluYXRlU2Vla1RvIHsgdGltZSB9LCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlz
KSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYXV0byYmIGV4Y2VwdGlvbikgbXV0YWJs
ZSB7CisgICAgbV9wYWdlLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlTWVkaWFT
ZXNzaW9uQ29vcmRpbmF0b3JQcm94eTo6Q29vcmRpbmF0ZVNlZWtUbyB7IHRpbWUgfSwgW3dlYWtU
aGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGF1
dG8mJiBleGNlcHRpb24pIG11dGFibGUgewogICAgICAgICBpZiAoIXdlYWtUaGlzKSB7CiAgICAg
ICAgICAgICBjYWxsYmFjayhFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKICAgICAg
ICAgICAgIHJldHVybjsKQEAgLTEwNyw3ICsxMDcsNyBAQCB2b2lkIFJlbW90ZU1lZGlhU2Vzc2lv
bkNvb3JkaW5hdG9yOjpzZWVrVG8oZG91YmxlIHRpbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
cwogdm9pZCBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGxheShDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uPiYmKT4mJiBjYWxsYmFj
aykKIHsKICAgICBBTFdBWVNfTE9HX0lGX1BPU1NJQkxFKExPR0lERU5USUZJRVIpOwotICAgIG1f
cGFnZS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhU2Vzc2lvbkNvb3Jk
aW5hdG9yUHJveHk6OkNvb3JkaW5hdGVQbGF5IHsgfSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIo
dGhpcyksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGF1dG8mJiBleGNlcHRpb24pIG11
dGFibGUgeworICAgIG1fcGFnZS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1l
ZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJveHk6OkNvb3JkaW5hdGVQbGF5IHsgfSwgW3dlYWtUaGlz
ID0gV2Vha1B0ciB7ICp0aGlzIH0sIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGF1dG8m
JiBleGNlcHRpb24pIG11dGFibGUgewogICAgICAgICBpZiAoIXdlYWtUaGlzKSB7CiAgICAgICAg
ICAgICBjYWxsYmFjayhFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKICAgICAgICAg
ICAgIHJldHVybjsKQEAgLTEyNSw3ICsxMjUsNyBAQCB2b2lkIFJlbW90ZU1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yOjpwbGF5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZQog
dm9pZCBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6cGF1c2UoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbj4mJik+JiYgY2FsbGJhY2sp
CiB7CiAgICAgQUxXQVlTX0xPR19JRl9QT1NTSUJMRShMT0dJREVOVElGSUVSKTsKLSAgICBtX3Bh
Z2Uuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVNlc3Npb25Db29yZGlu
YXRvclByb3h5OjpDb29yZGluYXRlUGF1c2UgeyB9LCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0
aGlzKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYXV0byYmIGV4Y2VwdGlvbikgbXV0
YWJsZSB7CisgICAgbV9wYWdlLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlTWVk
aWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eTo6Q29vcmRpbmF0ZVBhdXNlIHsgfSwgW3dlYWtUaGlz
ID0gV2Vha1B0ciB7ICp0aGlzIH0sIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGF1dG8m
JiBleGNlcHRpb24pIG11dGFibGUgewogICAgICAgICBpZiAoIXdlYWtUaGlzKSB7CiAgICAgICAg
ICAgICBjYWxsYmFjayhFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKICAgICAgICAg
ICAgIHJldHVybjsKQEAgLTE0Myw3ICsxNDMsNyBAQCB2b2lkIFJlbW90ZU1lZGlhU2Vzc2lvbkNv
b3JkaW5hdG9yOjpwYXVzZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8Vwog
dm9pZCBSZW1vdGVNZWRpYVNlc3Npb25Db29yZGluYXRvcjo6c2V0VHJhY2soY29uc3QgU3RyaW5n
JiB0cmFja0lkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpFeGNlcHRpb24+JiYpPiYmIGNhbGxiYWNrKQogewogICAgIEFMV0FZU19MT0dfSUZf
UE9TU0lCTEUoTE9HSURFTlRJRklFUik7Ci0gICAgbV9wYWdlLnNlbmRXaXRoQXN5bmNSZXBseShN
ZXNzYWdlczo6UmVtb3RlTWVkaWFTZXNzaW9uQ29vcmRpbmF0b3JQcm94eTo6Q29vcmRpbmF0ZVNl
dFRyYWNrIHsgdHJhY2tJZGVudGlmaWVyIH0sIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMp
LCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShhdXRvJiYgZXhjZXB0aW9uKSBtdXRhYmxl
IHsKKyAgICBtX3BhZ2Uuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVNl
c3Npb25Db29yZGluYXRvclByb3h5OjpDb29yZGluYXRlU2V0VHJhY2sgeyB0cmFja0lkZW50aWZp
ZXIgfSwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGNhbGxiYWNrID0gV1RGTW92ZShj
YWxsYmFjayldKGF1dG8mJiBleGNlcHRpb24pIG11dGFibGUgewogICAgICAgICBpZiAoIXdlYWtU
aGlzKSB7CiAgICAgICAgICAgICBjYWxsYmFjayhFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJv
ciB9KTsKICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrTWFuYWdlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29ya01hbmFn
ZXIuY3BwCmluZGV4IDlkNTgxZmE0MzFjZTIyOTZmMWQxMzgwMWU1YTFlZTY5NDJiNGQ4NjYuLjZj
YmQ2ZDdjNDJiMjA5NDBiZTg4ODQ2NjZhNjcxZWFlMzc4OTI1MWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrTWFuYWdl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldl
YlJUQ05ldHdvcmtNYW5hZ2VyLmNwcApAQCAtNzEsNyArNzEsNyBAQCB2b2lkIExpYldlYlJUQ05l
dHdvcmtNYW5hZ2VyOjp1bnJlZ2lzdGVyTUROU05hbWVzKCkKIAogdm9pZCBMaWJXZWJSVENOZXR3
b3JrTWFuYWdlcjo6U3RhcnRVcGRhdGluZygpCiB7Ci0gICAgY2FsbE9uTWFpblJ1bkxvb3AoW3Ro
aXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldIHsKKyAgICBjYWxsT25NYWluUnVuTG9v
cChbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0gewogICAgICAgICBpZiAoIXdl
YWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC04OCw3ICs4OCw3IEBAIHZvaWQgTGli
V2ViUlRDTmV0d29ya01hbmFnZXI6OlN0YXJ0VXBkYXRpbmcoKQogCiB2b2lkIExpYldlYlJUQ05l
dHdvcmtNYW5hZ2VyOjpTdG9wVXBkYXRpbmcoKQogewotICAgIGNhbGxPbk1haW5SdW5Mb29wKFt3
ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXSB7CisgICAgY2FsbE9uTWFpblJ1bkxvb3AoW3dl
YWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubGliV2Vi
UlRDTmV0d29yaygpLm1vbml0b3IoKS5zdG9wVXBkYXRpbmcoKTsKQEAgLTEzMyw3ICsxMzMsNyBA
QCB2b2lkIExpYldlYlJUQ05ldHdvcmtNYW5hZ2VyOjpuZXR3b3JrUHJvY2Vzc0NyYXNoZWQoKQog
CiB2b2lkIExpYldlYlJUQ05ldHdvcmtNYW5hZ2VyOjpDcmVhdGVOYW1lRm9yQWRkcmVzcyhjb25z
dCBydGM6OklQQWRkcmVzcyYgYWRkcmVzcywgTmFtZUNyZWF0ZWRDYWxsYmFjayBjYWxsYmFjaykK
IHsKLSAgICBjYWxsT25NYWluUnVuTG9vcChbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwg
YWRkcmVzcywgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oKSBtdXRhYmxlIHsKKyAgICBj
YWxsT25NYWluUnVuTG9vcChbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgYWRkcmVzcywg
Y2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCF3
ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1hSL1BsYXRmb3JtWFJTeXN0ZW1Qcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvWFIvUGxhdGZvcm1YUlN5c3RlbVByb3h5LmNwcAppbmRleCAzNTliOTZjN2I3
N2M0Yzg4OTNjZDJkZDk0YjQwMjgyNTA1OGMyY2U3Li5jNTA4NWNiZWZiYjYwZTBiOWJhMmRiMTMw
ZWQ3Zjg3ZGY4YTE0YzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvWFIv
UGxhdGZvcm1YUlN5c3RlbVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
WFIvUGxhdGZvcm1YUlN5c3RlbVByb3h5LmNwcApAQCAtNTMsNyArNTMsNyBAQCBQbGF0Zm9ybVhS
U3lzdGVtUHJveHk6On5QbGF0Zm9ybVhSU3lzdGVtUHJveHkoKQogCiB2b2lkIFBsYXRmb3JtWFJT
eXN0ZW1Qcm94eTo6ZW51bWVyYXRlSW1tZXJzaXZlWFJEZXZpY2VzKENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoY29uc3QgSW5zdGFuY2U6OkRldmljZUxpc3QmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKLSAgICBtX3BhZ2Uuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpQbGF0Zm9ybVhSU3lz
dGVtOjpFbnVtZXJhdGVJbW1lcnNpdmVYUkRldmljZXMoKSwgW3RoaXMsIHdlYWtUaGlzID0gbWFr
ZVdlYWtQdHIodGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcildKFZlY3RvcjxYUkRldmljZUluZm8+JiYgZGV2aWNlc0luZm9zKSBtdXRhYmxlIHsKKyAg
ICBtX3BhZ2Uuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpQbGF0Zm9ybVhSU3lzdGVtOjpF
bnVtZXJhdGVJbW1lcnNpdmVYUkRldmljZXMoKSwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7
ICp0aGlzIH0sIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcild
KFZlY3RvcjxYUkRldmljZUluZm8+JiYgZGV2aWNlc0luZm9zKSBtdXRhYmxlIHsKICAgICAgICAg
aWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHAucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcC5weQppbmRleCA4OTg1ZjkxOTcyZTljY2YxYmQ1NWRl
YzIyOThhZGJmMzc4OWU1YTYyLi5lZDZjMTgxNzdlMTc4OWM3ZDJjODY1MzM0NTcyNTU2MGYzZWFm
ZGVmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2Nw
cC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcC5weQpA
QCAtMjc0Myw2ICsyNzQzLDIzIEBAIGRlZiBjaGVja19jYWxsb25tYWludGhyZWFkKGZpbGVuYW1l
LCBjbGVhbl9saW5lcywgbGluZV9udW1iZXIsIGZpbGVfc3RhdGUsIGVycm9yCiAgICAgICAgIGVy
cm9yKGxpbmVfbnVtYmVyLCAncnVudGltZS9jYWxsb25tYWludGhyZWFkJywgNCwgIlVzZSAnY2Fs
bE9uTWFpblJ1bkxvb3BBbmRXYWl0KCknIGluc3RlYWQgb2YgJ2NhbGxPbk1haW5UaHJlYWRBbmRX
YWl0KCknIGluIFNvdXJjZS9XZWJLaXQuIikKIAogCitkZWYgY2hlY2tfbWFrZXdlYWtwdHIoY2xl
YW5fbGluZXMsIGxpbmVfbnVtYmVyLCBmaWxlX3N0YXRlLCBlcnJvcik6CisgICAgIiIiTG9va3Mg
Zm9yIHVzZSBvZiBsZWdhY3kgJ21ha2VXZWFrUHRyKCknLgorCisgICAgQXJnczoKKyAgICAgIGNs
ZWFuX2xpbmVzOiBBIENsZWFuc2VkTGluZXMgaW5zdGFuY2UgY29udGFpbmluZyB0aGUgZmlsZS4K
KyAgICAgIGxpbmVfbnVtYmVyOiBUaGUgbnVtYmVyIG9mIHRoZSBsaW5lIHRvIGNoZWNrLgorICAg
ICAgZmlsZV9zdGF0ZTogQSBfRmlsZVN0YXRlIGluc3RhbmNlIHdoaWNoIG1haW50YWlucyBpbmZv
cm1hdGlvbiBhYm91dAorICAgICAgICAgICAgICAgICAgdGhlIHN0YXRlIG9mIHRoaW5ncyBpbiB0
aGUgZmlsZS4KKyAgICAgIGVycm9yOiBUaGUgZnVuY3Rpb24gdG8gY2FsbCB3aXRoIGFueSBlcnJv
cnMgZm91bmQuCisgICAgIiIiCisKKyAgICBsaW5lID0gY2xlYW5fbGluZXMuZWxpZGVkW2xpbmVf
bnVtYmVyXSAgIyBHZXQgcmlkIG9mIGNvbW1lbnRzIGFuZCBzdHJpbmdzLgorICAgIHVzaW5nX21h
a2V3ZWFrcHRyID0gc2VhcmNoKHInXGJtYWtlV2Vha1B0clxzKlwoJywgbGluZSkKKyAgICBpZiB1
c2luZ19tYWtld2Vha3B0cjoKKyAgICAgICAgZXJyb3IobGluZV9udW1iZXIsICdydW50aW1lL21h
a2V3ZWFrcHRyJywgNCwgIlVzZSBXZWFrUHRyIHsgfSBkaXJlY3RseSBpbnN0ZWFkIG9mICdtYWtl
V2Vha1B0cigpJy4iKQorCisKIGRlZiBjaGVja19pc21haW50aHJlYWQoZmlsZW5hbWUsIGNsZWFu
X2xpbmVzLCBsaW5lX251bWJlciwgZmlsZV9zdGF0ZSwgZXJyb3IpOgogICAgICIiIkxvb2tzIGZv
ciB1c2Ugb2YgJ2lzTWFpblRocmVhZCgpJyB3aGljaCBzaG91bGQgYmUgcmVwbGFjZWQgd2l0aCAn
aXNNYWluUnVuTG9vcCgpJy4KIApAQCAtNDUwMyw2ICs0NTIwLDcgQEAgZGVmIHByb2Nlc3NfbGlu
ZShmaWxlbmFtZSwgZmlsZV9leHRlbnNpb24sCiAgICAgY2hlY2tfZm9yX25vbl9zdGFuZGFyZF9j
b25zdHJ1Y3RzKGNsZWFuX2xpbmVzLCBsaW5lLCBjbGFzc19zdGF0ZSwgZXJyb3IpCiAgICAgY2hl
Y2tfcG9zaXhfdGhyZWFkaW5nKGNsZWFuX2xpbmVzLCBsaW5lLCBlcnJvcikKICAgICBjaGVja19p
bnZhbGlkX2luY3JlbWVudChjbGVhbl9saW5lcywgbGluZSwgZXJyb3IpCisgICAgY2hlY2tfbWFr
ZXdlYWtwdHIoY2xlYW5fbGluZXMsIGxpbmUsIGZpbGVfc3RhdGUsIGVycm9yKQogICAgIGNoZWNr
X29zX3ZlcnNpb25fY2hlY2tzKGZpbGVuYW1lLCBjbGVhbl9saW5lcywgbGluZSwgZXJyb3IpCiAg
ICAgY2hlY2tfY2FsbG9ubWFpbnRocmVhZChmaWxlbmFtZSwgY2xlYW5fbGluZXMsIGxpbmUsIGZp
bGVfc3RhdGUsIGVycm9yKQogICAgIGNoZWNrX2lzbWFpbnRocmVhZChmaWxlbmFtZSwgY2xlYW5f
bGluZXMsIGxpbmUsIGZpbGVfc3RhdGUsIGVycm9yKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>