<?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>239408</bug_id>
          
          <creation_ts>2022-04-15 16:24:43 -0700</creation_ts>
          <short_desc>Rename WebCore::webCoreBuiltinNames() to WebCore::builtinNames()</short_desc>
          <delta_ts>2022-04-15 20:44:13 -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>Bindings</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=239361</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1861964</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-15 16:24:43 -0700</bug_when>
    <thetext>Rename WebCore::webCoreBuiltinNames() to WebCore::builtinNames() as suggested by Darin on Bug 239361.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861965</commentid>
    <comment_count>1</comment_count>
      <attachid>457734</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-15 16:26:16 -0700</bug_when>
    <thetext>Created attachment 457734
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862020</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-04-15 20:43:01 -0700</bug_when>
    <thetext>Committed r292938 (249703@main): &lt;https://commits.webkit.org/249703@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 457734.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862021</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-04-15 20:44:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/91841643&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457734</attachid>
            <date>2022-04-15 16:26:16 -0700</date>
            <delta_ts>2022-04-15 20:43:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239408-20220415162615.patch</filename>
            <type>text/plain</type>
            <size>56664</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyOTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjU5YTk4Y2Y5Zjg4NTlh
NDQyYmM4ZGZiY2U2ODNhNzRkN2Q4NmY1NS4uN2EyN2JlNzMwNDc4ZTUyMjgwOTU5MDVhNWUwZWIz
MWM5NDU5YjRmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDIyLTA0LTE1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIFdlYkNvcmU6Ondl
YkNvcmVCdWlsdGluTmFtZXMoKSB0byBXZWJDb3JlOjpidWlsdGluTmFtZXMoKQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5NDA4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RP
TUdsb2JhbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTUdsb2JhbE9iamVjdDo6
YWRkQnVpbHRpbkdsb2JhbHMpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NTWFwTGlrZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpnZXRCYWNraW5nTWFwKToKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU0RPTVNldExpa2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0QmFja2luZ1NldCk6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkpTRE9NV2luZG93QmFzZTo6aW5pdFN0YXRpY0dsb2JhbHMpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNET01XaW5kb3dCYXNlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpKU0RPTVdpbmRvd0Jhc2U6OnVwZGF0ZURvY3VtZW50KToKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc0RPTVdpbmRvd0dl
dE93blByb3BlcnR5U2xvdFJlc3RyaWN0ZWRBY2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6SlNE
T01XaW5kb3c6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdp
bmRvdzo6cHV0KToKKyAgICAgICAgKFdlYkNvcmU6OmFkZENyb3NzT3JpZ2luUHJvcGVydHlOYW1l
cyk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6ZGVmaW5lT3duUHJvcGVydHkpOgor
ICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3c6OnNldE9wZW5lcik6CisgICAgICAgIChXZWJD
b3JlOjpKU0RPTVdpbmRvdzo6b3BlbkRhdGFiYXNlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkpTRE9NV2luZG93OjpzZXRPcGVuRGF0YWJhc2UpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
RXZlbnRMaXN0ZW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0V2ZW50TGlzdGVuZXI6Omhh
bmRsZUV2ZW50KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9tLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmdldE93blByb3BlcnR5U2xvdENvbW1vbik6CisgICAgICAgIChX
ZWJDb3JlOjpKU0xvY2F0aW9uOjpwdXQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTUmVtb3Rl
RE9NV2luZG93Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTUmVtb3RlRE9NV2luZG93
OjpwdXQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlYWRhYmxlU3RyZWFtOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
UmVhZGFibGVTdHJlYW06OmxvY2spOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6c2V0dXBNb2R1
bGVTY3JpcHRIYW5kbGVycyk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9h
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlamVjdFRvUHJvcGFnYXRlTmV0d29ya0Vycm9y
KToKKyAgICAgICAgKFdlYkNvcmU6OnJlamVjdFdpdGhGZXRjaEVycm9yKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpidWls
dGluTmFtZXMpOgorICAgICAgICAoV2ViQ29yZTo6d2ViQ29yZUJ1aWx0aW5OYW1lcyk6IERlbGV0
ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAg
ICAgIChHZW5lcmF0ZUltcGxlbWVudGF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3c6
OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RD
b25kaXRpb25hbGx5UmVhZFdyaXRlUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlOjpmaW5pc2hDcmVhdGlvbik6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRCeVNldHRp
bmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0RW5hYmxlZEJ5U2V0dGluZzo6ZmluaXNo
Q3JlYXRpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFbmFi
bGVkRm9yQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RFbmFibGVkRm9yQ29u
dGV4dDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0R2xvYmFs
T2JqZWN0OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RPYmpQcm90b3R5cGU6
OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Y29udHJvbGxlckpTVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTE1lZGlhRWxlbWVudDo6ZGlkQWRkVXNlckFnZW50U2hhZG93Um9vdCk6CisgICAgICAgICog
dGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpjbG9u
ZUFycmF5QnVmZmVyKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENv
bnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29u
dHJvbGxlcjo6bG9hZE1vZHVsZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6bG9hZEFuZEV2YWx1YXRlTW9kdWxlKToKKwog
MjAyMi0wNC0xNSAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgogCiAgICAgICAg
IFdLV2ViVmlldyBmYWxzZSBwb3NpdGl2ZSB3aGVuIHRlc3RpbmcgYS5yZWxMaXN0LnN1cHBvcnRz
KCJhciIpLCBmYWlscyB0byBvcGVuIFVTRFogaW4gQVIgUXVpY2tMb29rCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAKaW5kZXggNzU0NDY1MTkz
ZTlmZDRjZjUzZWFlYjhkODYwYzc0Yzk4YmRiYTUyNi4uZDc1ZWVkODVjOWRhOGFiZjE3YTQ5YWM0
ZWI2YzQ2Y2JlZDIwOTBkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01HbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NR2xvYmFsT2JqZWN0LmNwcApAQCAtMjE0LDcgKzIxNCw3IEBAIFNVUFBSRVNTX0FTQU4gdm9p
ZCBKU0RPTUdsb2JhbE9iamVjdDo6YWRkQnVpbHRpbkdsb2JhbHMoVk0mIHZtKQogewogICAgIG1f
YnVpbHRpbkludGVybmFsRnVuY3Rpb25zLmluaXRpYWxpemUoKnRoaXMpOwogCi0gICAgYXV0byYg
YnVpbHRpbk5hbWVzID0gd2ViQ29yZUJ1aWx0aW5OYW1lcyh2bSk7CisgICAgYXV0byYgYnVpbHRp
bk5hbWVzID0gV2ViQ29yZTo6YnVpbHRpbk5hbWVzKHZtKTsKICAgICBKU0RPTUdsb2JhbE9iamVj
dDo6R2xvYmFsUHJvcGVydHlJbmZvIHN0YXRpY0dsb2JhbHNbXSA9IHsKICAgICAgICAgSlNET01H
bG9iYWxPYmplY3Q6Okdsb2JhbFByb3BlcnR5SW5mbyhidWlsdGluTmFtZXMubWFrZVRoaXNUeXBl
RXJyb3JQcml2YXRlTmFtZSgpLAogICAgICAgICAgICAgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0
aGlzLCAyLCBTdHJpbmcoKSwgbWFrZVRoaXNUeXBlRXJyb3JGb3JCdWlsdGlucyksIFByb3BlcnR5
QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KSwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NTWFwTGlrZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTU1hcExpa2UuY3BwCmluZGV4IDE1MmNkYjVi
Zjk3YjJiMTQ1NDIwOGVlNjE2ZTM0NGMxMmE3ZGVkMzEuLjA0NGY4YjdmYjZhMDMxZTA1OTkxODUz
MWM3OTY1MWFlYTE1ZDE3ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NTWFwTGlrZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01N
YXBMaWtlLmNwcApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdGQ6OnBh
aXI8Ym9vbCwgc3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxKU0M6OkpTT2JqZWN0Pj4gZ2V0QmFja2lu
Z01hcChKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkpTT2Jq
ZWN0JiBtYXBMaWtlKQogewogICAgIGF1dG8mIHZtID0gbGV4aWNhbEdsb2JhbE9iamVjdC52bSgp
OwotICAgIGF1dG8gYmFja2luZ01hcCA9IG1hcExpa2UuZ2V0KCZsZXhpY2FsR2xvYmFsT2JqZWN0
LCB3ZWJDb3JlQnVpbHRpbk5hbWVzKHZtKS5iYWNraW5nTWFwUHJpdmF0ZU5hbWUoKSk7CisgICAg
YXV0byBiYWNraW5nTWFwID0gbWFwTGlrZS5nZXQoJmxleGljYWxHbG9iYWxPYmplY3QsIGJ1aWx0
aW5OYW1lcyh2bSkuYmFja2luZ01hcFByaXZhdGVOYW1lKCkpOwogICAgIGlmICghYmFja2luZ01h
cC5pc1VuZGVmaW5lZCgpKQogICAgICAgICByZXR1cm4geyBmYWxzZSwgKkpTQzo6YXNPYmplY3Qo
YmFja2luZ01hcCkgfTsKIApAQCAtNDYsNyArNDYsNyBAQCBzdGQ6OnBhaXI8Ym9vbCwgc3RkOjpy
ZWZlcmVuY2Vfd3JhcHBlcjxKU0M6OkpTT2JqZWN0Pj4gZ2V0QmFja2luZ01hcChKU0M6OkpTR2xv
YgogICAgIGJhY2tpbmdNYXAgPSBKU0M6OkpTTWFwOjpjcmVhdGUoJmxleGljYWxHbG9iYWxPYmpl
Y3QsIHZtLCBsZXhpY2FsR2xvYmFsT2JqZWN0Lm1hcFN0cnVjdHVyZSgpKTsKICAgICBzY29wZS5y
ZWxlYXNlQXNzZXJ0Tm9FeGNlcHRpb24oKTsKIAotICAgIG1hcExpa2UucHV0RGlyZWN0KHZtLCB3
ZWJDb3JlQnVpbHRpbk5hbWVzKHZtKS5iYWNraW5nTWFwUHJpdmF0ZU5hbWUoKSwgYmFja2luZ01h
cCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
KSk7CisgICAgbWFwTGlrZS5wdXREaXJlY3Qodm0sIGJ1aWx0aW5OYW1lcyh2bSkuYmFja2luZ01h
cFByaXZhdGVOYW1lKCksIGJhY2tpbmdNYXAsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwogICAgIHJldHVybiB7IHRydWUsICpKU0M6OmFz
T2JqZWN0KGJhY2tpbmdNYXApIH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NU2V0TGlrZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVNldExpa2UuY3BwCmluZGV4IDg1OTc3NjllZjQ5ZTQ4NDQ2ZTA0NWU0MjU1MjZjNTcyZTY5
NDhhYzYuLjJhZDdlOWMyZjk1NzE2NGNhYjU5NTg5YWY1MTFlZTJhYTE1MDE4YTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NU2V0TGlrZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01TZXRMaWtlLmNwcApAQCAtNDIsNyArNDIsNyBA
QCB2b2lkIERPTVNldEFkYXB0ZXI6OmNsZWFyKCkKIHN0ZDo6cGFpcjxib29sLCBzdGQ6OnJlZmVy
ZW5jZV93cmFwcGVyPEpTQzo6SlNPYmplY3Q+PiBnZXRCYWNraW5nU2V0KEpTQzo6SlNHbG9iYWxP
YmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6SlNPYmplY3QmIHNldExpa2UpCiB7CiAg
ICAgYXV0byYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0LnZtKCk7Ci0gICAgYXV0byBiYWNraW5n
U2V0ID0gc2V0TGlrZS5nZXQoJmxleGljYWxHbG9iYWxPYmplY3QsIHdlYkNvcmVCdWlsdGluTmFt
ZXModm0pLmJhY2tpbmdTZXRQcml2YXRlTmFtZSgpKTsKKyAgICBhdXRvIGJhY2tpbmdTZXQgPSBz
ZXRMaWtlLmdldCgmbGV4aWNhbEdsb2JhbE9iamVjdCwgYnVpbHRpbk5hbWVzKHZtKS5iYWNraW5n
U2V0UHJpdmF0ZU5hbWUoKSk7CiAgICAgaWYgKGJhY2tpbmdTZXQuaXNVbmRlZmluZWQoKSkgewog
ICAgICAgICBhdXRvJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3Qudm0oKTsKICAgICAgICAgSlND
OjpEZWZlclRlcm1pbmF0aW9uIGRlZmVyU2NvcGUodm0pOwpAQCAtNTEsNyArNTEsNyBAQCBzdGQ6
OnBhaXI8Ym9vbCwgc3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxKU0M6OkpTT2JqZWN0Pj4gZ2V0QmFj
a2luZ1NldChKU0M6OkpTR2xvYgogICAgICAgICBiYWNraW5nU2V0ID0gSlNDOjpKU1NldDo6Y3Jl
YXRlKCZsZXhpY2FsR2xvYmFsT2JqZWN0LCB2bSwgbGV4aWNhbEdsb2JhbE9iamVjdC5zZXRTdHJ1
Y3R1cmUoKSk7CiAgICAgICAgIHNjb3BlLnJlbGVhc2VBc3NlcnROb0V4Y2VwdGlvbigpOwogCi0g
ICAgICAgIHNldExpa2UucHV0RGlyZWN0KHZtLCB3ZWJDb3JlQnVpbHRpbk5hbWVzKHZtKS5iYWNr
aW5nU2V0UHJpdmF0ZU5hbWUoKSwgYmFja2luZ1NldCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CisgICAgICAgIHNldExpa2UucHV0RGly
ZWN0KHZtLCBidWlsdGluTmFtZXModm0pLmJhY2tpbmdTZXRQcml2YXRlTmFtZSgpLCBiYWNraW5n
U2V0LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0pKTsKICAgICAgICAgcmV0dXJuIHsgdHJ1ZSwgKkpTQzo6YXNPYmplY3QoYmFja2luZ1NldCkg
fTsKICAgICB9CiAgICAgcmV0dXJuIHsgZmFsc2UsICpKU0M6OmFzT2JqZWN0KGJhY2tpbmdTZXQp
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jh
c2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcApp
bmRleCA3ODllYWJkODkyNzRlNTRiMTZjOGEzNzc0NmMwNTEyYzJiNWEyZWFlLi40N2UzM2RkOTFk
NmQ4M2FhZjg0OWNkNzI1YWMzMjliNDhlZjRiNGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKQEAgLTEwOCw3ICsxMDgsNyBAQCBKU0RPTVdp
bmRvd0Jhc2U6On5KU0RPTVdpbmRvd0Jhc2UoKSA9IGRlZmF1bHQ7CiAKIFNVUFBSRVNTX0FTQU4g
aW5saW5lIHZvaWQgSlNET01XaW5kb3dCYXNlOjppbml0U3RhdGljR2xvYmFscyhKU0M6OlZNJiB2
bSkKIHsKLSAgICBhdXRvJiBidWlsdGluTmFtZXMgPSB3ZWJDb3JlQnVpbHRpbk5hbWVzKHZtKTsK
KyAgICBhdXRvJiBidWlsdGluTmFtZXMgPSBXZWJDb3JlOjpidWlsdGluTmFtZXModm0pOwogCiAg
ICAgR2xvYmFsUHJvcGVydHlJbmZvIHN0YXRpY0dsb2JhbHNbXSA9IHsKICAgICAgICAgR2xvYmFs
UHJvcGVydHlJbmZvKGJ1aWx0aW5OYW1lcy5kb2N1bWVudFB1YmxpY05hbWUoKSwganNOdWxsKCks
IFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRP
bmx5KSwKQEAgLTEyOCw3ICsxMjgsNyBAQCB2b2lkIEpTRE9NV2luZG93QmFzZTo6ZmluaXNoQ3Jl
YXRpb24oVk0mIHZtLCBKU1dpbmRvd1Byb3h5KiBwcm94eSkKICAgICBpZiAobV93cmFwcGVkICYm
IG1fd3JhcHBlZC0+ZnJhbWUoKSAmJiBtX3dyYXBwZWQtPmZyYW1lKCktPnNldHRpbmdzKCkubmVl
ZHNTaXRlU3BlY2lmaWNRdWlya3MoKSkKICAgICAgICAgc2V0TmVlZHNTaXRlU3BlY2lmaWNRdWly
a3ModHJ1ZSk7CiAKLSAgICBwdXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwgd2ViQ29yZUJ1aWx0
aW5OYW1lcyh2bSkuc2hvd01vZGFsRGlhbG9nUHVibGljTmFtZSgpLCBDdXN0b21HZXR0ZXJTZXR0
ZXI6OmNyZWF0ZSh2bSwgc2hvd01vZGFsRGlhbG9nR2V0dGVyLCBudWxscHRyKSwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21WYWx1ZSkpOworICAgIHB1dERp
cmVjdEN1c3RvbUFjY2Vzc29yKHZtLCBidWlsdGluTmFtZXModm0pLnNob3dNb2RhbERpYWxvZ1B1
YmxpY05hbWUoKSwgQ3VzdG9tR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sIHNob3dNb2RhbERpYWxv
Z0dldHRlciwgbnVsbHB0ciksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0
ZTo6Q3VzdG9tVmFsdWUpKTsKIH0KIAogdm9pZCBKU0RPTVdpbmRvd0Jhc2U6OmRlc3Ryb3koSlND
ZWxsKiBjZWxsKQpAQCAtMTQ5LDcgKzE0OSw3IEBAIHZvaWQgSlNET01XaW5kb3dCYXNlOjp1cGRh
dGVEb2N1bWVudCgpCiAgICAgYm9vbCBzaG91bGRUaHJvd1JlYWRPbmx5RXJyb3IgPSBmYWxzZTsK
ICAgICBib29sIGlnbm9yZVJlYWRPbmx5RXJyb3JzID0gdHJ1ZTsKICAgICBib29sIHB1dFJlc3Vs
dCA9IGZhbHNlOwotICAgIHN5bWJvbFRhYmxlUHV0VG91Y2hXYXRjaHBvaW50U2V0KHRoaXMsIGxl
eGljYWxHbG9iYWxPYmplY3QsIHdlYkNvcmVCdWlsdGluTmFtZXModm0pLmRvY3VtZW50UHVibGlj
TmFtZSgpLCB0b0pTKGxleGljYWxHbG9iYWxPYmplY3QsIHRoaXMsIG1fd3JhcHBlZC0+ZG9jdW1l
bnQoKSksIHNob3VsZFRocm93UmVhZE9ubHlFcnJvciwgaWdub3JlUmVhZE9ubHlFcnJvcnMsIHB1
dFJlc3VsdCk7CisgICAgc3ltYm9sVGFibGVQdXRUb3VjaFdhdGNocG9pbnRTZXQodGhpcywgbGV4
aWNhbEdsb2JhbE9iamVjdCwgYnVpbHRpbk5hbWVzKHZtKS5kb2N1bWVudFB1YmxpY05hbWUoKSwg
dG9KUyhsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzLCBtX3dyYXBwZWQtPmRvY3VtZW50KCkpLCBz
aG91bGRUaHJvd1JlYWRPbmx5RXJyb3IsIGlnbm9yZVJlYWRPbmx5RXJyb3JzLCBwdXRSZXN1bHQp
OwogICAgIEVYQ0VQVElPTl9BU1NFUlRfVU5VU0VEKHNjb3BlLCAhc2NvcGUuZXhjZXB0aW9uKCkp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3Rv
bS5jcHAKaW5kZXggNjZlYjFmOWVhMjI5Mjg4ZDNlNWI1YzIyM2U0Mjk4ZjE0NmU4MDNmMy4uYjdh
YmFiZTQwY2NkMjZhNDI1MDNhM2E4MTY4NTA1YjhmODYyZWU2MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcApAQCAtMTEzLDcgKzExMyw3
IEBAIGJvb2wganNET01XaW5kb3dHZXRPd25Qcm9wZXJ0eVNsb3RSZXN0cmljdGVkQWNjZXNzKEpT
RE9NR2xvYmFsT2JqZWN0KiB0aGlzT2JqZWN0CiAgICAgVk0mIHZtID0gbGV4aWNhbEdsb2JhbE9i
amVjdC52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAot
ICAgIGF1dG8mIGJ1aWx0aW5OYW1lcyA9IHdlYkNvcmVCdWlsdGluTmFtZXModm0pOworICAgIGF1
dG8mIGJ1aWx0aW5OYW1lcyA9IFdlYkNvcmU6OmJ1aWx0aW5OYW1lcyh2bSk7CiAKICAgICAvLyBo
dHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyNjcm9zc29yaWdpbmdldG93bnByb3BlcnR5aGVs
cGVyLSgtbywtcC0pCiAKQEAgLTIxNCw3ICsyMTQsNyBAQCBib29sIEpTRE9NV2luZG93OjpnZXRP
d25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9iamVjdCwgSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bAogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICNpZiBFTkFCTEUoVVNFUl9NRVNTQUdFX0hBTkRM
RVJTKQotICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gd2ViQ29yZUJ1aWx0aW5OYW1lcyhsZXhpY2Fs
R2xvYmFsT2JqZWN0LT52bSgpKS53ZWJraXRQdWJsaWNOYW1lKCkgJiYgdGhpc09iamVjdC0+d3Jh
cHBlZCgpLnNob3VsZEhhdmVXZWJLaXROYW1lc3BhY2VGb3JXb3JsZCh0aGlzT2JqZWN0LT53b3Js
ZCgpKSkgeworICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gYnVpbHRpbk5hbWVzKGxleGljYWxHbG9i
YWxPYmplY3QtPnZtKCkpLndlYmtpdFB1YmxpY05hbWUoKSAmJiB0aGlzT2JqZWN0LT53cmFwcGVk
KCkuc2hvdWxkSGF2ZVdlYktpdE5hbWVzcGFjZUZvcldvcmxkKHRoaXNPYmplY3QtPndvcmxkKCkp
KSB7CiAgICAgICAgIHNsb3Quc2V0Q2FjaGVhYmxlQ3VzdG9tKHRoaXNPYmplY3QsIEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFk
T25seSwganNET01XaW5kb3dfd2Via2l0KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpA
QCAtMjU1LDcgKzI1NSw3IEBAIGJvb2wgSlNET01XaW5kb3c6OnB1dChKU0NlbGwqIGNlbGwsIEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBQcm9wZXJ0CiAgICAgU3RyaW5nIGVy
cm9yTWVzc2FnZTsKICAgICBpZiAoIUJpbmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NU
b0RPTVdpbmRvdygqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc09iamVjdC0+d3JhcHBlZCgpLCBl
cnJvck1lc3NhZ2UpKSB7CiAgICAgICAgIC8vIFdlIG9ubHkgYWxsb3cgc2V0dGluZyAibG9jYXRp
b24iIGF0dHJpYnV0ZSBjcm9zcy1vcmlnaW4uCi0gICAgICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0g
d2ViQ29yZUJ1aWx0aW5OYW1lcyh2bSkubG9jYXRpb25QdWJsaWNOYW1lKCkpIHsKKyAgICAgICAg
aWYgKHByb3BlcnR5TmFtZSA9PSBidWlsdGluTmFtZXModm0pLmxvY2F0aW9uUHVibGljTmFtZSgp
KSB7CiAgICAgICAgICAgICBhdXRvKiBzZXR0ZXIgPSBzX2luZm8uc3RhdGljUHJvcEhhc2hUYWJs
ZS0+ZW50cnkocHJvcGVydHlOYW1lKS0+cHJvcGVydHlQdXR0ZXIoKTsKICAgICAgICAgICAgIHNj
b3BlLnJlbGVhc2UoKTsKICAgICAgICAgICAgIHNldHRlcihsZXhpY2FsR2xvYmFsT2JqZWN0LCBK
U1ZhbHVlOjplbmNvZGUoc2xvdC50aGlzVmFsdWUoKSksIEpTVmFsdWU6OmVuY29kZSh2YWx1ZSks
IHByb3BlcnR5TmFtZSk7CkBAIC0zMjcsNyArMzI3LDcgQEAgdm9pZCBKU0RPTVdpbmRvdzo6YW5h
bHl6ZUhlYXAoSlNDZWxsKiBjZWxsLCBIZWFwQW5hbHl6ZXImIGFuYWx5emVyKQogdGVtcGxhdGUg
PENyb3NzT3JpZ2luT2JqZWN0IG9iamVjdFR5cGU+CiBzdGF0aWMgdm9pZCBhZGRDcm9zc09yaWdp
blByb3BlcnR5TmFtZXMoVk0mIHZtLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcykK
IHsKLSAgICBhdXRvJiBidWlsdGluTmFtZXMgPSB3ZWJDb3JlQnVpbHRpbk5hbWVzKHZtKTsKKyAg
ICBhdXRvJiBidWlsdGluTmFtZXMgPSBXZWJDb3JlOjpidWlsdGluTmFtZXModm0pOwogICAgIHN3
aXRjaCAob2JqZWN0VHlwZSkgewogICAgIGNhc2UgQ3Jvc3NPcmlnaW5PYmplY3Q6OkxvY2F0aW9u
OiB7CiAgICAgICAgIHN0YXRpYyBjb25zdCBJZGVudGlmaWVyKiBjb25zdCBwcm9wZXJ0aWVzW10g
PSB7ICZidWlsdGluTmFtZXMuaHJlZlB1YmxpY05hbWUoKSwgJnZtLnByb3BlcnR5TmFtZXMtPnJl
cGxhY2UgfTsKQEAgLTQxMyw3ICs0MTMsNyBAQCBib29sIEpTRE9NV2luZG93OjpkZWZpbmVPd25Q
cm9wZXJ0eShKU0M6OkpTT2JqZWN0KiBvYmplY3QsIEpTQzo6SlNHbG9iYWxPYmplY3QqCiAgICAg
ICAgIHJldHVybiB0eXBlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIHNob3VsZFRo
cm93LCBtYWtlVW5zdXBwb3J0ZWRJbmRleGVkU2V0dGVyRXJyb3JNZXNzYWdlKCJXaW5kb3ciKSk7
CiAgICAgc2NvcGUucmVsZWFzZSgpOwogCi0gICAgYXV0byYgYnVpbHRpbk5hbWVzID0gd2ViQ29y
ZUJ1aWx0aW5OYW1lcyh2bSk7CisgICAgYXV0byYgYnVpbHRpbk5hbWVzID0gV2ViQ29yZTo6YnVp
bHRpbk5hbWVzKHZtKTsKICAgICBpZiAocHJvcGVydHlOYW1lID09IGJ1aWx0aW5OYW1lcy5kb2N1
bWVudFB1YmxpY05hbWUoKSB8fCBwcm9wZXJ0eU5hbWUgPT0gYnVpbHRpbk5hbWVzLndpbmRvd1B1
YmxpY05hbWUoKSkKICAgICAgICAgcmV0dXJuIEpTT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eSh0
aGlzT2JqZWN0LCBsZXhpY2FsR2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3Is
IHNob3VsZFRocm93KTsKIApAQCAtNTg2LDcgKzU4Niw3IEBAIHZvaWQgSlNET01XaW5kb3c6OnNl
dE9wZW5lcihKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkpT
VmFsCiAgICAgfQogCiAgICAgYm9vbCBzaG91bGRUaHJvdyA9IHRydWU7Ci0gICAgY3JlYXRlRGF0
YVByb3BlcnR5KCZsZXhpY2FsR2xvYmFsT2JqZWN0LCB3ZWJDb3JlQnVpbHRpbk5hbWVzKGxleGlj
YWxHbG9iYWxPYmplY3Qudm0oKSkub3BlbmVyUHVibGljTmFtZSgpLCB2YWx1ZSwgc2hvdWxkVGhy
b3cpOworICAgIGNyZWF0ZURhdGFQcm9wZXJ0eSgmbGV4aWNhbEdsb2JhbE9iamVjdCwgYnVpbHRp
bk5hbWVzKGxleGljYWxHbG9iYWxPYmplY3Qudm0oKSkub3BlbmVyUHVibGljTmFtZSgpLCB2YWx1
ZSwgc2hvdWxkVGhyb3cpOwogfQogCiBKU1ZhbHVlIEpTRE9NV2luZG93OjpzZWxmKEpTQzo6SlNH
bG9iYWxPYmplY3QmKSBjb25zdApAQCAtNjQ0LDcgKzY0NCw3IEBAIEpTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihqc0RPTVdpbmRvd0luc3RhbmNlRnVuY3Rpb25fb3BlbkRhdGFiYXNlLCAoSlNHbG9i
YWxPYmplCiBKU1ZhbHVlIEpTRE9NV2luZG93OjpvcGVuRGF0YWJhc2UoSlNDOjpKU0dsb2JhbE9i
amVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCkgY29uc3QKIHsKICAgICBWTSYgdm0gPSBsZXhpY2Fs
R2xvYmFsT2JqZWN0LnZtKCk7Ci0gICAgU3RyaW5nSW1wbCogbmFtZSA9IFByb3BlcnR5TmFtZSh3
ZWJDb3JlQnVpbHRpbk5hbWVzKHZtKS5vcGVuRGF0YWJhc2VQdWJsaWNOYW1lKCkpLnB1YmxpY05h
bWUoKTsKKyAgICBTdHJpbmdJbXBsKiBuYW1lID0gUHJvcGVydHlOYW1lKGJ1aWx0aW5OYW1lcyh2
bSkub3BlbkRhdGFiYXNlUHVibGljTmFtZSgpKS5wdWJsaWNOYW1lKCk7CiAgICAgaWYgKFJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViU1FMRW5hYmxlZCgpKQogICAg
ICAgICByZXR1cm4gSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCAmbGV4aWNhbEdsb2JhbE9iamVjdCwg
NCwgbmFtZSwganNET01XaW5kb3dJbnN0YW5jZUZ1bmN0aW9uX29wZW5EYXRhYmFzZSwgTm9JbnRy
aW5zaWMpOwogCkBAIC02NTcsNyArNjU3LDcgQEAgdm9pZCBKU0RPTVdpbmRvdzo6c2V0T3BlbkRh
dGFiYXNlKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzoKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgYm9vbCBzaG91bGRUaHJvdyA9IHRydWU7Ci0gICAgY3JlYXRl
RGF0YVByb3BlcnR5KCZsZXhpY2FsR2xvYmFsT2JqZWN0LCB3ZWJDb3JlQnVpbHRpbk5hbWVzKGxl
eGljYWxHbG9iYWxPYmplY3Qudm0oKSkub3BlbkRhdGFiYXNlUHVibGljTmFtZSgpLCB2YWx1ZSwg
c2hvdWxkVGhyb3cpOworICAgIGNyZWF0ZURhdGFQcm9wZXJ0eSgmbGV4aWNhbEdsb2JhbE9iamVj
dCwgYnVpbHRpbk5hbWVzKGxleGljYWxHbG9iYWxPYmplY3Qudm0oKSkub3BlbkRhdGFiYXNlUHVi
bGljTmFtZSgpLCB2YWx1ZSwgc2hvdWxkVGhyb3cpOwogfQogCiBKU0RPTVdpbmRvdyYgbWFpbldv
cmxkR2xvYmFsT2JqZWN0KEZyYW1lJiBmcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0V2ZW50TGlzdGVuZXIuY3BwCmluZGV4IGZmNjZlMGFmNzIzODhkZDE2YTNlMjhjNjU4
MzU1Njc0OGJjOWMzNTcuLmQxNjE0NDMyMGYwNGJjMWViMzA2OTcxOTU0OGJiZTc0YjU1NjUyYmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcApA
QCAtMTg3LDcgKzE4Nyw3IEBAIHZvaWQgSlNFdmVudExpc3RlbmVyOjpoYW5kbGVFdmVudChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0CiAgICAgICAgIGlmICht
X2lzQXR0cmlidXRlKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGhhbmRsZUV2ZW50
RnVuY3Rpb24gPSBqc0Z1bmN0aW9uLT5nZXQobGV4aWNhbEdsb2JhbE9iamVjdCwgd2ViQ29yZUJ1
aWx0aW5OYW1lcyh2bSkuaGFuZGxlRXZlbnRQdWJsaWNOYW1lKCkpOworICAgICAgICBoYW5kbGVF
dmVudEZ1bmN0aW9uID0ganNGdW5jdGlvbi0+Z2V0KGxleGljYWxHbG9iYWxPYmplY3QsIGJ1aWx0
aW5OYW1lcyh2bSkuaGFuZGxlRXZlbnRQdWJsaWNOYW1lKCkpOwogICAgICAgICBpZiAoVU5MSUtF
TFkoc2NvcGUuZXhjZXB0aW9uKCkpKSB7CiAgICAgICAgICAgICBhdXRvKiBleGNlcHRpb24gPSBz
Y29wZS5leGNlcHRpb24oKTsKICAgICAgICAgICAgIHNjb3BlLmNsZWFyRXhjZXB0aW9uKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9tLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwCmluZGV4
IGQ5Yzk2MjhkMjgyOWIxNDU5MGJlOWI2MGI1OTQ0MmM1NDk2ZTc2NGQuLjhkZDJiZDY4YzQ3MzAz
MTc0ZjVlNDYxNzYwOWI0MTkwY2VkOGI2MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwCkBAIC02Myw3ICs2Myw3IEBAIHN0YXRpYyBib29s
IGdldE93blByb3BlcnR5U2xvdENvbW1vbihKU0xvY2F0aW9uJiB0aGlzT2JqZWN0LCBKU0dsb2Jh
bE9iamVjdCYgbGV4CiAKICAgICAvLyBHZXR0aW5nIGxvY2F0aW9uLmhyZWYgY3Jvc3Mgb3JpZ2lu
IG5lZWRzIHRvIHRocm93LiBIb3dldmVyLCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoKSBuZWVk
cyB0byByZXR1cm4KICAgICAvLyBhIGRlc2NyaXB0b3IgdGhhdCBoYXMgYSBzZXR0ZXIgYnV0IG5v
IGdldHRlci4KLSAgICBpZiAoc2xvdC5pbnRlcm5hbE1ldGhvZFR5cGUoKSA9PSBQcm9wZXJ0eVNs
b3Q6OkludGVybmFsTWV0aG9kVHlwZTo6R2V0T3duUHJvcGVydHkgJiYgcHJvcGVydHlOYW1lID09
IHdlYkNvcmVCdWlsdGluTmFtZXModm0pLmhyZWZQdWJsaWNOYW1lKCkpIHsKKyAgICBpZiAoc2xv
dC5pbnRlcm5hbE1ldGhvZFR5cGUoKSA9PSBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlw
ZTo6R2V0T3duUHJvcGVydHkgJiYgcHJvcGVydHlOYW1lID09IGJ1aWx0aW5OYW1lcyh2bSkuaHJl
ZlB1YmxpY05hbWUoKSkgewogICAgICAgICBhdXRvKiBlbnRyeSA9IEpTTG9jYXRpb246OmluZm8o
KS0+c3RhdGljUHJvcEhhc2hUYWJsZS0+ZW50cnkocHJvcGVydHlOYW1lKTsKICAgICAgICAgYXV0
byogZ2V0dGVyU2V0dGVyID0gdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKS0+Y3JlYXRlQ3Jvc3NP
cmlnaW5HZXR0ZXJTZXR0ZXIoJmxleGljYWxHbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgbnVs
bHB0ciwgZW50cnktPnByb3BlcnR5UHV0dGVyKCkpOwogICAgICAgICBzbG90LnNldEdldHRlclNs
b3QoJnRoaXNPYmplY3QsIFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3NvciB8IFByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSwgZ2V0dGVyU2V0dGVyKTsKQEAgLTEyMCw3ICsxMjAsNyBAQCBib29s
IEpTTG9jYXRpb246OnB1dChKU0NlbGwqIGNlbGwsIEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBQcm9wZXJ0eQogICAgIC8vIFNvIGZhbGwgdGhyb3VnaCB0byB0aGUgYWNjZXNz
IGNoZWNrIGZvciB0aG9zZS4KICAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOwogICAgIGlmICghQmlu
ZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vzc1RvRE9NV2luZG93KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzT2JqZWN0LT53cmFwcGVkKCkud2luZG93KCksIGVycm9yTWVzc2FnZSkpIHsK
LSAgICAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSB3ZWJDb3JlQnVpbHRpbk5hbWVzKHZtKS5ocmVm
UHVibGljTmFtZSgpKSB7CisgICAgICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gYnVpbHRpbk5hbWVz
KHZtKS5ocmVmUHVibGljTmFtZSgpKSB7CiAgICAgICAgICAgICBhdXRvKiBzZXR0ZXIgPSBzX2lu
Zm8uc3RhdGljUHJvcEhhc2hUYWJsZS0+ZW50cnkocHJvcGVydHlOYW1lKS0+cHJvcGVydHlQdXR0
ZXIoKTsKICAgICAgICAgICAgIHNjb3BlLnJlbGVhc2UoKTsKICAgICAgICAgICAgIHNldHRlcihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjplbmNvZGUocHV0UHJvcGVydHlTbG90LnRoaXNW
YWx1ZSgpKSwgSlNWYWx1ZTo6ZW5jb2RlKHZhbHVlKSwgcHJvcGVydHlOYW1lKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmVtb3RlRE9NV2luZG93Q3VzdG9tLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmVtb3RlRE9NV2luZG93Q3VzdG9tLmNw
cAppbmRleCA1NTNiNzg1ZTVmYTI5YWUwZTgzMDQ1ZGU2Y2VmOTVhM2Q5YmQ4ZWYwLi41ZmFmYWNh
NTEzNWRmZjhjYjNlNWY5ZGFiMmZiYzMxNTBlNTBhNDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1JlbW90ZURPTVdpbmRvd0N1c3RvbS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZW1vdGVET01XaW5kb3dDdXN0b20uY3BwCkBAIC02Nyw3
ICs2Nyw3IEBAIGJvb2wgSlNSZW1vdGVET01XaW5kb3c6OnB1dChKU0NlbGwqIGNlbGwsIEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBQCiAgICAgU3RyaW5nIGVycm9yTWVzc2Fn
ZTsKIAogICAgIC8vIFdlIG9ubHkgYWxsb3cgc2V0dGluZyAibG9jYXRpb24iIGF0dHJpYnV0ZSBj
cm9zcy1vcmlnaW4uCi0gICAgaWYgKHByb3BlcnR5TmFtZSA9PSB3ZWJDb3JlQnVpbHRpbk5hbWVz
KHZtKS5sb2NhdGlvblB1YmxpY05hbWUoKSkgeworICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gYnVp
bHRpbk5hbWVzKHZtKS5sb2NhdGlvblB1YmxpY05hbWUoKSkgewogICAgICAgICBhdXRvKiBzZXR0
ZXIgPSBzX2luZm8uc3RhdGljUHJvcEhhc2hUYWJsZS0+ZW50cnkocHJvcGVydHlOYW1lKS0+cHJv
cGVydHlQdXR0ZXIoKTsKICAgICAgICAgc2NvcGUucmVsZWFzZSgpOwogICAgICAgICBzZXR0ZXIo
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNWYWx1ZTo6ZW5jb2RlKHNsb3QudGhpc1ZhbHVlKCkpLCBK
U1ZhbHVlOjplbmNvZGUodmFsdWUpLCBwcm9wZXJ0eU5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW0uY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW0uY3BwCmluZGV4IDcxZjU1MWRlOGM2Zjg4ZTcxNmQ2
YTc2ZWIxZTZkM2U0MjRjNzBkYWUuLjQ5YmI1NWMzNDIxNTkzYTZiOTMwM2Y3ZGFmNzRiZWZlZjll
M2RlOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlU3Ry
ZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbS5j
cHAKQEAgLTY2LDcgKzY2LDcgQEAgc3RhdGljIGlubGluZSBFeGNlcHRpb25PcjxKU09iamVjdCo+
IGludm9rZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGkKIAogRXhjZXB0aW9u
T3I8UmVmPFJlYWRhYmxlU3RyZWFtPj4gUmVhZGFibGVTdHJlYW06OmNyZWF0ZShKU0M6OkpTR2xv
YmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBSZWZQdHI8UmVhZGFibGVTdHJlYW1Tb3Vy
Y2U+JiYgc291cmNlKQogewotICAgIGF1dG8mIGJ1aWx0aW5OYW1lcyA9IHdlYkNvcmVCdWlsdGlu
TmFtZXMobGV4aWNhbEdsb2JhbE9iamVjdC52bSgpKTsKKyAgICBhdXRvJiBidWlsdGluTmFtZXMg
PSBXZWJDb3JlOjpidWlsdGluTmFtZXMobGV4aWNhbEdsb2JhbE9iamVjdC52bSgpKTsKIAogICAg
IGF1dG8gb2JqZWN0T3JFeGNlcHRpb24gPSBpbnZva2VDb25zdHJ1Y3RvcihsZXhpY2FsR2xvYmFs
T2JqZWN0LCBidWlsdGluTmFtZXMuUmVhZGFibGVTdHJlYW1Qcml2YXRlTmFtZSgpLCBbJnNvdXJj
ZV0oYXV0byYgYXJncywgYXV0byYgbGV4aWNhbEdsb2JhbE9iamVjdCwgYXV0byYgZ2xvYmFsT2Jq
ZWN0KSB7CiAgICAgICAgIGFyZ3MuYXBwZW5kKHNvdXJjZSA/IHRvSlNOZXdseUNyZWF0ZWQoJmxl
eGljYWxHbG9iYWxPYmplY3QsICZnbG9iYWxPYmplY3QsIHNvdXJjZS5yZWxlYXNlTm9uTnVsbCgp
KSA6IEpTQzo6anNVbmRlZmluZWQoKSk7CkBAIC0xMzAsNyArMTMwLDcgQEAgc3RkOjpvcHRpb25h
bDxzdGQ6OnBhaXI8UmVmPFJlYWRhYmxlU3RyZWFtPiwgUmVmPFJlYWRhYmxlU3RyZWFtPj4+IFJl
YWRhYmxlU3RyZWEKIAogdm9pZCBSZWFkYWJsZVN0cmVhbTo6bG9jaygpCiB7Ci0gICAgYXV0byYg
YnVpbHRpbk5hbWVzID0gd2ViQ29yZUJ1aWx0aW5OYW1lcyhtX2dsb2JhbE9iamVjdC0+dm0oKSk7
CisgICAgYXV0byYgYnVpbHRpbk5hbWVzID0gV2ViQ29yZTo6YnVpbHRpbk5hbWVzKG1fZ2xvYmFs
T2JqZWN0LT52bSgpKTsKICAgICBpbnZva2VDb25zdHJ1Y3RvcigqbV9nbG9iYWxPYmplY3QsIGJ1
aWx0aW5OYW1lcy5SZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXJQcml2YXRlTmFtZSgpLCBbdGhp
c10oYXV0byYgYXJncywgYXV0byYsIGF1dG8mKSB7CiAgICAgICAgIGFyZ3MuYXBwZW5kKHJlYWRh
YmxlU3RyZWFtKCkpOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHRDb250cm9sbGVyLmNwcAppbmRleCBkYjJmMWYxODVjZDdiMzQ3ZWVmODFiM2FkNTJjMzgz
Y2VkMGJmZjM5Li4wZjY1Y2FhMjZiNjc4M2ZmYmI1MWYzNTM1MWQ1YjQwZTBjY2YyNjY5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcApAQCAt
MzM2LDcgKzMzNiw3IEBAIHZvaWQgU2NyaXB0Q29udHJvbGxlcjo6c2V0dXBNb2R1bGVTY3JpcHRI
YW5kbGVycyhMb2FkYWJsZU1vZHVsZVNjcmlwdCYgbW9kdWxlU2NyCiAgICAgICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKHZtKTsKICAgICAgICAgaWYgKGVycm9yVmFsdWUuaXNP
YmplY3QoKSkgewogICAgICAgICAgICAgYXV0byogb2JqZWN0ID0gSlNDOjphc09iamVjdChlcnJv
clZhbHVlKTsKLSAgICAgICAgICAgIGlmIChKU1ZhbHVlIGZhaWx1cmVLaW5kVmFsdWUgPSBvYmpl
Y3QtPmdldERpcmVjdCh2bSwgd2ViQ29yZUJ1aWx0aW5OYW1lcyh2bSkuZmFpbHVyZUtpbmRQcml2
YXRlTmFtZSgpKSkgeworICAgICAgICAgICAgaWYgKEpTVmFsdWUgZmFpbHVyZUtpbmRWYWx1ZSA9
IG9iamVjdC0+Z2V0RGlyZWN0KHZtLCBidWlsdGluTmFtZXModm0pLmZhaWx1cmVLaW5kUHJpdmF0
ZU5hbWUoKSkpIHsKICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIGhvc3QgcHJvcGFnYXRlZCBl
cnJvciBpbiB0aGUgbW9kdWxlIGxvYWRlciBwaXBlbGluZS4KICAgICAgICAgICAgICAgICBzd2l0
Y2ggKHN0YXRpY19jYXN0PE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ+KGZhaWx1cmVLaW5kVmFsdWUu
YXNJbnQzMigpKSkgewogICAgICAgICAgICAgICAgIGNhc2UgTW9kdWxlRmV0Y2hGYWlsdXJlS2lu
ZDo6V2FzUHJvcGFnYXRlZEVycm9yOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdE1vZHVsZUxvYWRlci5jcHAKaW5kZXggNWRmMzg3ZGIxYzVhMmMxM2Q3MWNiMzJhYTdm
YTFhNDQ2NTBhYzRiMS4uNDU3YTg5ODdjNjJkNWVmOTljOWIzOGI1MGY5YTA0OTdiMmRiZmZmNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIu
Y3BwCkBAIC0xNTEsNyArMTUxLDcgQEAgc3RhdGljIHZvaWQgcmVqZWN0VG9Qcm9wYWdhdGVOZXR3
b3JrRXJyb3IoRGVmZXJyZWRQcm9taXNlJiBkZWZlcnJlZCwgTW9kdWxlRmV0Y2gKICAgICAgICAg
Ly8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzU1MwogICAgICAg
ICBhdXRvKiBlcnJvciA9IEpTQzo6Y3JlYXRlVHlwZUVycm9yKCZqc0dsb2JhbE9iamVjdCwgbWVz
c2FnZSk7CiAgICAgICAgIEFTU0VSVChlcnJvcik7Ci0gICAgICAgIGVycm9yLT5wdXREaXJlY3Qo
dm0sIHdlYkNvcmVCdWlsdGluTmFtZXModm0pLmZhaWx1cmVLaW5kUHJpdmF0ZU5hbWUoKSwgSlND
Ojpqc051bWJlcihzdGF0aWNfY2FzdDxpbnQzMl90PihmYWlsdXJlS2luZCkpKTsKKyAgICAgICAg
ZXJyb3ItPnB1dERpcmVjdCh2bSwgYnVpbHRpbk5hbWVzKHZtKS5mYWlsdXJlS2luZFByaXZhdGVO
YW1lKCksIEpTQzo6anNOdW1iZXIoc3RhdGljX2Nhc3Q8aW50MzJfdD4oZmFpbHVyZUtpbmQpKSk7
CiAgICAgICAgIHJldHVybiBlcnJvcjsKICAgICB9KTsKIH0KQEAgLTE2Myw3ICsxNjMsNyBAQCBz
dGF0aWMgdm9pZCByZWplY3RXaXRoRmV0Y2hFcnJvcihEZWZlcnJlZFByb21pc2UmIGRlZmVycmVk
LCBFeGNlcHRpb25Db2RlIGVjLCBjbwogICAgICAgICBKU0M6OlZNJiB2bSA9IGpzR2xvYmFsT2Jq
ZWN0LnZtKCk7CiAgICAgICAgIEpTQzo6SlNPYmplY3QqIGVycm9yID0ganNDYXN0PEpTQzo6SlNP
YmplY3QqPihjcmVhdGVET01FeGNlcHRpb24oJmpzR2xvYmFsT2JqZWN0LCBlYywgbWVzc2FnZSkp
OwogICAgICAgICBBU1NFUlQoZXJyb3IpOwotICAgICAgICBlcnJvci0+cHV0RGlyZWN0KHZtLCB3
ZWJDb3JlQnVpbHRpbk5hbWVzKHZtKS5mYWlsdXJlS2luZFByaXZhdGVOYW1lKCksIEpTQzo6anNO
dW1iZXIoc3RhdGljX2Nhc3Q8aW50MzJfdD4oTW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzRmV0
Y2hFcnJvcikpKTsKKyAgICAgICAgZXJyb3ItPnB1dERpcmVjdCh2bSwgYnVpbHRpbk5hbWVzKHZt
KS5mYWlsdXJlS2luZFByaXZhdGVOYW1lKCksIEpTQzo6anNOdW1iZXIoc3RhdGljX2Nhc3Q8aW50
MzJfdD4oTW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzRmV0Y2hFcnJvcikpKTsKICAgICAgICAg
cmV0dXJuIGVycm9yOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oCmluZGV4IGUzMmExYzNmNDI2NjQzZTY2NDkyMmYxNzA4
NmJjMWRlNDIyZGRiZGMuLjgxMjkzOThmNDJiZTFhZDZkM2VjMGE2MmU4OWRlZTU2ZDc4MTljNGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERh
dGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRh
LmgKQEAgLTIwOCw3ICsyMDgsNyBAQCBJR05PUkVfV0FSTklOR1NfRU5ECiAgICAgcmV0dXJuIGNs
aWVudFNwYWNlOwogfQogCi1BTFdBWVNfSU5MSU5FIFdlYkNvcmVCdWlsdGluTmFtZXMmIHdlYkNv
cmVCdWlsdGluTmFtZXMoSlNDOjpWTSYgdm0pCitBTFdBWVNfSU5MSU5FIFdlYkNvcmVCdWlsdGlu
TmFtZXMmIGJ1aWx0aW5OYW1lcyhKU0M6OlZNJiB2bSkKIHsKICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKS0+YnVpbHRpbk5hbWVzKCk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JK
Uy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBt
CmluZGV4IDExZDA4NmQzZGExNjNkODQ3YTg1ZjE3NmE2Nzk2MThjNzgyZDU5NjguLjQ1ZTZjOGU4
M2UyZTlkN2QyZWZhZjgyNDdhMWM0OGYyMzQ1NjU4NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC00NjA4LDEwICs0NjA4
LDEwIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgaWYgKCEke3J1bnRpbWVFbmFibGVDb25kaXRpb25hbFN0cmluZ30p
XG4iKTsKICAgICAgICAgICAgICAgICBpZiAoSXNBY2NlbGVyYXRlZERPTUF0dHJpYnV0ZSgkaW50
ZXJmYWNlLCAkYXR0cmlidXRlKSkgewogICAgICAgICAgICAgICAgICAgICBteSAkY2xhc3NGb3JU
aGlzID0gIiR7Y2xhc3NOYW1lfTo6aW5mbygpIjsKLSAgICAgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgICAgIHB1dERpcmVjdEN1c3RvbUFjY2Vzc29yKHZtLCB3ZWJDb3Jl
QnVpbHRpbk5hbWVzKHZtKS4iIC4gJGF0dHJpYnV0ZU5hbWUgLiAiUHVibGljTmFtZSgpLCBKU0M6
OkRPTUF0dHJpYnV0ZUdldHRlclNldHRlcjo6Y3JlYXRlKHZtLCAkZ2V0dGVyLCAkc2V0dGVyLCBK
U0M6OkRPTUF0dHJpYnV0ZUFubm90YXRpb24geyAkY2xhc3NGb3JUaGlzLCBudWxscHRyIH0pLCBh
dHRyaWJ1dGVzRm9yU3RydWN0dXJlKCRqc2NBdHRyaWJ1dGVzKSk7XG4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHB1dERpcmVjdEN1c3RvbUFjY2Vz
c29yKHZtLCBidWlsdGluTmFtZXModm0pLiIgLiAkYXR0cmlidXRlTmFtZSAuICJQdWJsaWNOYW1l
KCksIEpTQzo6RE9NQXR0cmlidXRlR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sICRnZXR0ZXIsICRz
ZXR0ZXIsIEpTQzo6RE9NQXR0cmlidXRlQW5ub3RhdGlvbiB7ICRjbGFzc0ZvclRoaXMsIG51bGxw
dHIgfSksIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoJGpzY0F0dHJpYnV0ZXMpKTtcbiIpOwogICAg
ICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIGFzc2VydCgiQ3VzdG9t
R2V0dGVyU2V0dGVyIGlzIG5vdCBhbGxvd2VkIGZvciBET01BdHRyaWJ1dGUuIERPTUF0dHJpYnV0
ZUdldHRlclNldHRlciBtdXN0IGJlIHVzZWQuIikgaWYgSXNBY2NlbGVyYXRlZERPTUF0dHJpYnV0
ZSgkaW50ZXJmYWNlLCAkYXR0cmlidXRlKTsKLSAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgICAgIHB1dERpcmVjdEN1c3RvbUFjY2Vzc29yKHZtLCB3ZWJDb3JlQnVp
bHRpbk5hbWVzKHZtKS4iIC4gJGF0dHJpYnV0ZU5hbWUgLiAiUHVibGljTmFtZSgpLCBDdXN0b21H
ZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwgJGdldHRlciwgJHNldHRlciksIGF0dHJpYnV0ZXNGb3JT
dHJ1Y3R1cmUoJGpzY0F0dHJpYnV0ZXMpKTtcbiIpOworICAgICAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICAgICAgcHV0RGlyZWN0Q3VzdG9tQWNjZXNzb3Iodm0sIGJ1aWx0
aW5OYW1lcyh2bSkuIiAuICRhdHRyaWJ1dGVOYW1lIC4gIlB1YmxpY05hbWUoKSwgQ3VzdG9tR2V0
dGVyU2V0dGVyOjpjcmVhdGUodm0sICRnZXR0ZXIsICRzZXR0ZXIpLCBhdHRyaWJ1dGVzRm9yU3Ry
dWN0dXJlKCRqc2NBdHRyaWJ1dGVzKSk7XG4iKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIjZW5kaWZcbiIpIGlmICRjb25kaXRpb25hbFN0
cmluZzsKICAgICAgICAgICAgIH0KQEAgLTQ2MjcsNyArNDYyNyw3IEBAIHN1YiBHZW5lcmF0ZUlt
cGxlbWVudGF0aW9uCiAgICAgICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiV2ViQ29yZUpTQ2xp
ZW50RGF0YS5oIik7CiAgICAgICAgICAgICBteSAkY29uZGl0aW9uYWxTdHJpbmcgPSAkY29kZUdl
bmVyYXRvci0+R2VuZXJhdGVDb25kaXRpb25hbFN0cmluZygkb3BlcmF0aW9uKTsKICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiI2lmICR7Y29uZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAk
Y29uZGl0aW9uYWxTdHJpbmc7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBw
dXREaXJlY3Qodm0sIHdlYkNvcmVCdWlsdGluTmFtZXModm0pLiIgLiAkb3BlcmF0aW9uLT5uYW1l
IC4gIlByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0KCks
IDAsIFN0cmluZygpLCAiIC4gR2V0RnVuY3Rpb25OYW1lKCRpbnRlcmZhY2UsICRjbGFzc05hbWUs
ICRvcGVyYXRpb24pIC4gIiksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pO1xuIik7CisgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICBwdXREaXJlY3Qodm0sIGJ1aWx0aW5OYW1lcyh2bSkuIiAuICRvcGVy
YXRpb24tPm5hbWUgLiAiUHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCBnbG9i
YWxPYmplY3QoKSwgMCwgU3RyaW5nKCksICIgLiBHZXRGdW5jdGlvbk5hbWUoJGludGVyZmFjZSwg
JGNsYXNzTmFtZSwgJG9wZXJhdGlvbikgLiAiKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVh
ZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7XG4iKTsKICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiI2VuZGlmXG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7
CiAgICAgICAgIH0KIApAQCAtNDc0NiwxMCArNDc0NiwxMCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1l
bnRhdGlvbgogICAgICAgICBhc3NlcnQoIkN1c3RvbUdldHRlclNldHRlciBpcyBub3QgYWxsb3dl
ZCBmb3IgRE9NQXR0cmlidXRlLiBET01BdHRyaWJ1dGVHZXR0ZXJTZXR0ZXIgbXVzdCBiZSB1c2Vk
LiIpIGlmIElzQWNjZWxlcmF0ZWRET01BdHRyaWJ1dGUoJGludGVyZmFjZSwgJGF0dHJpYnV0ZSk7
CiAKICAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e1B1YmxpY0lk
ZW50aWZpZXJ9IHx8ICEkYXR0cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntQcml2YXRlSWRl
bnRpZmllcn0pIHsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBwdXRE
aXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwgd2ViQ29yZUJ1aWx0aW5OYW1lcyh2bSkuIiAuICRhdHRy
aWJ1dGVOYW1lIC4gIlB1YmxpY05hbWUoKSwgQ3VzdG9tR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0s
ICRnZXR0ZXIsICRzZXR0ZXIpLCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKCRqc2NBdHRyaWJ1dGVz
KSk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBwdXREaXJl
Y3RDdXN0b21BY2Nlc3Nvcih2bSwgYnVpbHRpbk5hbWVzKHZtKS4iIC4gJGF0dHJpYnV0ZU5hbWUg
LiAiUHVibGljTmFtZSgpLCBDdXN0b21HZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwgJGdldHRlciwg
JHNldHRlciksIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoJGpzY0F0dHJpYnV0ZXMpKTtcbiIpOwog
ICAgICAgICB9CiAgICAgICAgIGlmICgkYXR0cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntQ
cml2YXRlSWRlbnRpZmllcn0pIHsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
ICAgICBwdXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwgd2ViQ29yZUJ1aWx0aW5OYW1lcyh2bSku
IiAuICRhdHRyaWJ1dGVOYW1lIC4gIlByaXZhdGVOYW1lKCksIEN1c3RvbUdldHRlclNldHRlcjo6
Y3JlYXRlKHZtLCAkZ2V0dGVyLCAkc2V0dGVyKSwgYXR0cmlidXRlc0ZvclN0cnVjdHVyZSgkanNj
QXR0cmlidXRlcykpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAg
ICAgcHV0RGlyZWN0Q3VzdG9tQWNjZXNzb3Iodm0sIGJ1aWx0aW5OYW1lcyh2bSkuIiAuICRhdHRy
aWJ1dGVOYW1lIC4gIlByaXZhdGVOYW1lKCksIEN1c3RvbUdldHRlclNldHRlcjo6Y3JlYXRlKHZt
LCAkZ2V0dGVyLCAkc2V0dGVyKSwgYXR0cmlidXRlc0ZvclN0cnVjdHVyZSgkanNjQXR0cmlidXRl
cykpO1xuIik7CiAgICAgICAgIH0KIAogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB9
XG4iKSBpZiAkaXNQcml2YXRlQW5kUHVibGljOwpAQCAtNDc2OSw3ICs0NzY5LDcgQEAgc3ViIEdl
bmVyYXRlSW1wbGVtZW50YXRpb24KIAogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNpZiAk
e2NvbmRpdGlvbmFsU3RyaW5nfVxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwogICAgICAgICBh
c3NlcnQoIkN1c3RvbUdldHRlclNldHRlciBpcyBub3QgYWxsb3dlZCBmb3IgRE9NQXR0cmlidXRl
LiBET01BdHRyaWJ1dGVHZXR0ZXJTZXR0ZXIgbXVzdCBiZSB1c2VkLiIpIGlmIElzQWNjZWxlcmF0
ZWRET01BdHRyaWJ1dGUoJGludGVyZmFjZSwgJGF0dHJpYnV0ZSk7Ci0gICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIHB1dERpcmVjdEN1c3RvbUFjY2Vzc29yKHZtLCB3ZWJDb3JlQnVpbHRp
bk5hbWVzKHZtKS4iIC4gJGF0dHJpYnV0ZU5hbWUgLiAiUHJpdmF0ZU5hbWUoKSwgQ3VzdG9tR2V0
dGVyU2V0dGVyOjpjcmVhdGUodm0sICRnZXR0ZXIsIG51bGxwdHIpLCBhdHRyaWJ1dGVzRm9yU3Ry
dWN0dXJlKEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpSZWFkT25seSkpO1xuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIHB1dERpcmVjdEN1c3RvbUFjY2Vzc29yKHZtLCBidWlsdGluTmFtZXModm0pLiIgLiAkYXR0
cmlidXRlTmFtZSAuICJQcml2YXRlTmFtZSgpLCBDdXN0b21HZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2
bSwgJGdldHRlciwgbnVsbHB0ciksIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5
KSk7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIjZW5kaWZcbiIpIGlmICRjb25k
aXRpb25hbFN0cmluZzsKICAgICB9CiAKQEAgLTQ3ODksNyArNDc4OSw3IEBAIHN1YiBHZW5lcmF0
ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIG15ICRjb25kaXRpb25hbFN0cmluZyA9ICRjb2RlR2Vu
ZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRvcGVyYXRpb24pOwogICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiNpZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxuIikgaWYgJGNvbmRp
dGlvbmFsU3RyaW5nOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoJHtydW50
aW1lRW5hYmxlQ29uZGl0aW9uYWxTdHJpbmd9KVxuIik7Ci0gICAgICAgIG15ICRwcm9wZXJ0eU5h
bWUgPSAid2ViQ29yZUJ1aWx0aW5OYW1lcyh2bSkuIiAuICRmdW5jdGlvbk5hbWUgLiAoJG9wZXJh
dGlvbi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57UHJpdmF0ZUlkZW50aWZpZXJ9ID8gIlByaXZhdGVO
YW1lKCkiIDogIlB1YmxpY05hbWUoKSIpOworICAgICAgICBteSAkcHJvcGVydHlOYW1lID0gImJ1
aWx0aW5OYW1lcyh2bSkuIiAuICRmdW5jdGlvbk5hbWUgLiAoJG9wZXJhdGlvbi0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57UHJpdmF0ZUlkZW50aWZpZXJ9ID8gIlByaXZhdGVOYW1lKCkiIDogIlB1Ymxp
Y05hbWUoKSIpOwogICAgICAgICBpZiAoSXNKU0J1aWx0aW4oJGludGVyZmFjZSwgJG9wZXJhdGlv
bikpIHsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBwdXREaXJlY3RC
dWlsdGluRnVuY3Rpb24odm0sIHRoaXMsICRwcm9wZXJ0eU5hbWUsICRpbXBsZW1lbnRhdGlvbkZ1
bmN0aW9uKHZtKSwgYXR0cmlidXRlc0ZvclN0cnVjdHVyZSgkanNBdHRyaWJ1dGVzKSk7XG4iKTsK
ICAgICAgICAgfSBlbHNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNET01XaW5kb3cuY3BwCmluZGV4IGI0MmU1NGE1YjMzNGZmZDM4NTFj
ZDk3NjM3NzM5MWIxMWRjNzg1OTIuLjk1NWUwYTVmMmI1OGFmZGE5ZDllYWE4NTdlMTNkMGRiZTFi
YzI5ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTRE9NV2luZG93LmNwcApAQCAtMjAwLDcgKzIwMCw3IEBAIHZvaWQgSlNET01XaW5k
b3c6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNXaW5kb3dQcm94eSogcHJveHkpCiAgICAgc3Rh
dGljX2Fzc2VydCghc3RkOjppc19iYXNlX29mPEFjdGl2ZURPTU9iamVjdCwgRE9NV2luZG93Pjo6
dmFsdWUsICJJbnRlcmZhY2UgaXMgbm90IG1hcmtlZCBhcyBbQWN0aXZlRE9NT2JqZWN0XSBldmVu
IHRob3VnaCBpbXBsZW1lbnRhdGlvbiBjbGFzcyBzdWJjbGFzc2VzIEFjdGl2ZURPTU9iamVjdC4i
KTsKIAogICAgIGlmICgoanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KCkp
LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzU2VjdXJlQ29udGV4dCgpICYmIFRlc3RFbmFi
bGVkRm9yQ29udGV4dDo6ZW5hYmxlZEZvckNvbnRleHQoKmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVj
dCo+KGdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkpCi0gICAgICAg
IHB1dERpcmVjdEN1c3RvbUFjY2Vzc29yKHZtLCB3ZWJDb3JlQnVpbHRpbk5hbWVzKHZtKS5UZXN0
RW5hYmxlZEZvckNvbnRleHRQdWJsaWNOYW1lKCksIEN1c3RvbUdldHRlclNldHRlcjo6Y3JlYXRl
KHZtLCBqc0RPTVdpbmRvd19UZXN0RW5hYmxlZEZvckNvbnRleHRDb25zdHJ1Y3RvciwgbnVsbHB0
ciksIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSkpOworICAgICAgICBwdXREaXJlY3RDdXN0b21BY2Nl
c3Nvcih2bSwgYnVpbHRpbk5hbWVzKHZtKS5UZXN0RW5hYmxlZEZvckNvbnRleHRQdWJsaWNOYW1l
KCksIEN1c3RvbUdldHRlclNldHRlcjo6Y3JlYXRlKHZtLCBqc0RPTVdpbmRvd19UZXN0RW5hYmxl
ZEZvckNvbnRleHRDb25zdHJ1Y3RvciwgbnVsbHB0ciksIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUo
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSkp
OwogfQogCiBKU1ZhbHVlIEpTRE9NV2luZG93OjpnZXRDb25zdHJ1Y3RvcihWTSYgdm0sIGNvbnN0
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q29uZGl0
aW9uYWxseVJlYWRXcml0ZS5jcHAKaW5kZXggYmU0MTA4MDBhZmU0ZTgyMDZhNDU5M2MyMWM1MmE5
NTExYmQ0OGQ2MS4uYmNiZDFlNWVkNDc1NmUxMTVlNTBiMDVjYWUxYTlkNTRhZGFhMzdmZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENv
bmRpdGlvbmFsbHlSZWFkV3JpdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlLmNwcApAQCAtMjE4LDE2
ICsyMTgsMTYgQEAgdm9pZCBKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUHJvdG90eXBlOjpm
aW5pc2hDcmVhdGlvbihWTSYgdm0pCiAgICAgfQogICAgIC8vIEFkZGluZyBiYWNrIGF0dHJpYnV0
ZSwgYnV0IGFzIHJlYWRvbmx5LCBhZnRlciByZW1vdmluZyB0aGUgcmVhZC13cml0ZSB2YXJpYW50
IGFib3ZlLiAKICAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVz
KCkudGVzdEZlYXR1cmVFbmFibGVkKCkpCi0gICAgICAgIHB1dERpcmVjdEN1c3RvbUFjY2Vzc29y
KHZtLCB3ZWJDb3JlQnVpbHRpbk5hbWVzKHZtKS5ydW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0
ZUF0dHJpYnV0ZVB1YmxpY05hbWUoKSwgSlNDOjpET01BdHRyaWJ1dGVHZXR0ZXJTZXR0ZXI6OmNy
ZWF0ZSh2bSwganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZV9ydW50aW1lQ29uZGl0aW9uYWxs
eVJlYWRXcml0ZUF0dHJpYnV0ZSwgbnVsbHB0ciwgSlNDOjpET01BdHRyaWJ1dGVBbm5vdGF0aW9u
IHsgSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZTo6aW5mbygpLCBudWxscHRyIH0pLCBhdHRy
aWJ1dGVzRm9yU3RydWN0dXJlKHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJp
YnV0ZSkpKTsKKyAgICAgICAgcHV0RGlyZWN0Q3VzdG9tQWNjZXNzb3Iodm0sIGJ1aWx0aW5OYW1l
cyh2bSkucnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQdWJsaWNOYW1lKCks
IEpTQzo6RE9NQXR0cmlidXRlR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sIGpzVGVzdENvbmRpdGlv
bmFsbHlSZWFkV3JpdGVfcnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUsIG51
bGxwdHIsIEpTQzo6RE9NQXR0cmlidXRlQW5ub3RhdGlvbiB7IEpTVGVzdENvbmRpdGlvbmFsbHlS
ZWFkV3JpdGU6OmluZm8oKSwgbnVsbHB0ciB9KSwgYXR0cmlidXRlc0ZvclN0cnVjdHVyZShzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3Ig
fCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpKSk7CiAgICAgLy8gQWRkaW5n
IGJhY2sgYXR0cmlidXRlLCBidXQgYXMgcmVhZG9ubHksIGFmdGVyIHJlbW92aW5nIHRoZSByZWFk
LXdyaXRlIHZhcmlhbnQgYWJvdmUuIAogICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6
c2hhcmVkRmVhdHVyZXMoKS50ZXN0RmVhdHVyZUVuYWJsZWQoKSkKLSAgICAgICAgcHV0RGlyZWN0
Q3VzdG9tQWNjZXNzb3Iodm0sIHdlYkNvcmVCdWlsdGluTmFtZXModm0pLnJ1bnRpbWVDb25kaXRp
b25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZVB1YmxpY05hbWUoKSwgQ3VzdG9tR2V0dGVy
U2V0dGVyOjpjcmVhdGUodm0sIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVfcnVudGltZUNv
bmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlLCBudWxscHRyKSwgYXR0cmlidXRl
c0ZvclN0cnVjdHVyZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6Q3VzdG9tQWNjZXNzb3IpKSk7CisgICAgICAgIHB1dERpcmVjdEN1c3RvbUFjY2Vzc29yKHZt
LCBidWlsdGluTmFtZXModm0pLnJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRl
UHJvbWlzZVB1YmxpY05hbWUoKSwgQ3VzdG9tR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sIGpzVGVz
dENvbmRpdGlvbmFsbHlSZWFkV3JpdGVfcnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRy
aWJ1dGVQcm9taXNlLCBudWxscHRyKSwgYXR0cmlidXRlc0ZvclN0cnVjdHVyZShzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IpKSk7CiAg
ICAgLy8gQWRkaW5nIGJhY2sgYXR0cmlidXRlLCBidXQgYXMgcmVhZG9ubHksIGFmdGVyIHJlbW92
aW5nIHRoZSByZWFkLXdyaXRlIHZhcmlhbnQgYWJvdmUuIAogICAgIGlmICghZG93bmNhc3Q8RG9j
dW1lbnQ+KGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCgpKS0+c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpKS0+c2V0dGluZ3NWYWx1ZXMoKS50ZXN0RmVhdHVyZUVuYWJsZWQp
Ci0gICAgICAgIHB1dERpcmVjdEN1c3RvbUFjY2Vzc29yKHZtLCB3ZWJDb3JlQnVpbHRpbk5hbWVz
KHZtKS5zZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQdWJsaWNOYW1lKCks
IEpTQzo6RE9NQXR0cmlidXRlR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sIGpzVGVzdENvbmRpdGlv
bmFsbHlSZWFkV3JpdGVfc2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlLCBu
dWxscHRyLCBKU0M6OkRPTUF0dHJpYnV0ZUFubm90YXRpb24geyBKU1Rlc3RDb25kaXRpb25hbGx5
UmVhZFdyaXRlOjppbmZvKCksIG51bGxwdHIgfSksIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29y
IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSkpOworICAgICAgICBwdXRE
aXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwgYnVpbHRpbk5hbWVzKHZtKS5zZXR0aW5nc0NvbmRpdGlv
bmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQdWJsaWNOYW1lKCksIEpTQzo6RE9NQXR0cmlidXRlR2V0
dGVyU2V0dGVyOjpjcmVhdGUodm0sIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVfc2V0dGlu
Z3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlLCBudWxscHRyLCBKU0M6OkRPTUF0dHJp
YnV0ZUFubm90YXRpb24geyBKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlOjppbmZvKCksIG51
bGxwdHIgfSksIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RE9NQXR0cmlidXRlKSkpOwogICAgIC8vIEFkZGluZyBiYWNrIGF0dHJpYnV0ZSwgYnV0
IGFzIHJlYWRvbmx5LCBhZnRlciByZW1vdmluZyB0aGUgcmVhZC13cml0ZSB2YXJpYW50IGFib3Zl
LiAKICAgICBpZiAoIWRvd25jYXN0PERvY3VtZW50Pihqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3Qq
PihnbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSktPnNldHRpbmdzVmFs
dWVzKCkudGVzdEZlYXR1cmVFbmFibGVkKQotICAgICAgICBwdXREaXJlY3RDdXN0b21BY2Nlc3Nv
cih2bSwgd2ViQ29yZUJ1aWx0aW5OYW1lcyh2bSkuc2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdy
aXRlQXR0cmlidXRlUHJvbWlzZVB1YmxpY05hbWUoKSwgQ3VzdG9tR2V0dGVyU2V0dGVyOjpjcmVh
dGUodm0sIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVfc2V0dGluZ3NDb25kaXRpb25hbGx5
UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZSwgbnVsbHB0ciksIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1
cmUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFj
Y2Vzc29yKSkpOworICAgICAgICBwdXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwgYnVpbHRpbk5h
bWVzKHZtKS5zZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlUHVi
bGljTmFtZSgpLCBDdXN0b21HZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwganNUZXN0Q29uZGl0aW9u
YWxseVJlYWRXcml0ZV9zZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9t
aXNlLCBudWxscHRyKSwgYXR0cmlidXRlc0ZvclN0cnVjdHVyZShzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IpKSk7CiAgICAgaWYgKGhh
c0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgJiYgc3RydWN0dXJlKCktPmlzRGljdGlvbmFyeSgp
KQogICAgICAgICBmbGF0dGVuRGljdGlvbmFyeU9iamVjdCh2bSk7CiAgICAgSlNDX1RPX1NUUklO
R19UQUdfV0lUSE9VVF9UUkFOU0lUSU9OKCk7CkBAIC0yNDcsOCArMjQ3LDggQEAgdm9pZCBKU1Rl
c3RDb25kaXRpb25hbGx5UmVhZFdyaXRlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiAKICAgICBz
dGF0aWNfYXNzZXJ0KCFzdGQ6OmlzX2Jhc2Vfb2Y8QWN0aXZlRE9NT2JqZWN0LCBUZXN0Q29uZGl0
aW9uYWxseVJlYWRXcml0ZT46OnZhbHVlLCAiSW50ZXJmYWNlIGlzIG5vdCBtYXJrZWQgYXMgW0Fj
dGl2ZURPTU9iamVjdF0gZXZlbiB0aG91Z2ggaW1wbGVtZW50YXRpb24gY2xhc3Mgc3ViY2xhc3Nl
cyBBY3RpdmVET01PYmplY3QuIik7CiAKLSAgICBwdXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwg
d2ViQ29yZUJ1aWx0aW5OYW1lcyh2bSkucnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRy
aWJ1dGVVbmZvcmdlYWJsZVByaXZhdGVQcml2YXRlTmFtZSgpLCBDdXN0b21HZXR0ZXJTZXR0ZXI6
OmNyZWF0ZSh2bSwganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZV9ydW50aW1lQ29uZGl0aW9u
YWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZSwgbnVsbHB0ciksIGF0dHJp
YnV0ZXNGb3JTdHJ1Y3R1cmUoSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KSk7Ci0gICAgcHV0RGlyZWN0Q3VzdG9tQWNj
ZXNzb3Iodm0sIHdlYkNvcmVCdWlsdGluTmFtZXModm0pLnNldHRpbmdzQ29uZGl0aW9uYWxseVJl
YWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZVByaXZhdGVOYW1lKCksIEN1c3RvbUdl
dHRlclNldHRlcjo6Y3JlYXRlKHZtLCBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlX3NldHRp
bmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZSwgbnVs
bHB0ciksIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dERlbGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KSk7CisgICAgcHV0RGly
ZWN0Q3VzdG9tQWNjZXNzb3Iodm0sIGJ1aWx0aW5OYW1lcyh2bSkucnVudGltZUNvbmRpdGlvbmFs
bHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVByaXZhdGVQcml2YXRlTmFtZSgpLCBDdXN0
b21HZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZV9y
dW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZSwg
bnVsbHB0ciksIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udERlbGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KSk7CisgICAgcHV0
RGlyZWN0Q3VzdG9tQWNjZXNzb3Iodm0sIGJ1aWx0aW5OYW1lcyh2bSkuc2V0dGluZ3NDb25kaXRp
b25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRlUHJpdmF0ZU5hbWUoKSwg
Q3VzdG9tR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3Jp
dGVfc2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2
YXRlLCBudWxscHRyKSwgYXR0cmlidXRlc0ZvclN0cnVjdHVyZShKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpEb250RGVsZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpKTsKIH0K
IAogSlNPYmplY3QqIEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGU6OmNyZWF0ZVByb3RvdHlw
ZShWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEJ5U2V0
dGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
RW5hYmxlZEJ5U2V0dGluZy5jcHAKaW5kZXggMmRiMWY0MDIzYzg5MDhmODRmZTEzMWQxNmIyMWZl
Y2ZkZTA5M2U0Mi4uZmMxZjFkYjhlMWEyN2Q3NzM3OTZiNjM4ZGZkMjNiMzVkZTlhMGUxYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVu
YWJsZWRCeVNldHRpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RFbmFibGVkQnlTZXR0aW5nLmNwcApAQCAtMjUxLDEyICsyNTEsMTIgQEAg
dm9pZCBKU1Rlc3RFbmFibGVkQnlTZXR0aW5nOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiAgICAg
c3RhdGljX2Fzc2VydCghc3RkOjppc19iYXNlX29mPEFjdGl2ZURPTU9iamVjdCwgVGVzdEVuYWJs
ZWRCeVNldHRpbmc+Ojp2YWx1ZSwgIkludGVyZmFjZSBpcyBub3QgbWFya2VkIGFzIFtBY3RpdmVE
T01PYmplY3RdIGV2ZW4gdGhvdWdoIGltcGxlbWVudGF0aW9uIGNsYXNzIHN1YmNsYXNzZXMgQWN0
aXZlRE9NT2JqZWN0LiIpOwogCiAgICAgaWYgKGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGds
b2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZXR0aW5nc1ZhbHVlcygp
LnRlc3RTZXR0aW5nRW5hYmxlZCkKLSAgICAgICAgcHV0RGlyZWN0Q3VzdG9tQWNjZXNzb3Iodm0s
IHdlYkNvcmVCdWlsdGluTmFtZXModm0pLlRlc3RTdWJPYmpFbmFibGVkQnlTZXR0aW5nUHVibGlj
TmFtZSgpLCBDdXN0b21HZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwganNUZXN0RW5hYmxlZEJ5U2V0
dGluZ19UZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yLCBudWxscHRyKSwgYXR0
cmlidXRlc0ZvclN0cnVjdHVyZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0pKSk7CisgICAgICAgIHB1dERpcmVjdEN1c3RvbUFjY2Vzc29yKHZt
LCBidWlsdGluTmFtZXModm0pLlRlc3RTdWJPYmpFbmFibGVkQnlTZXR0aW5nUHVibGljTmFtZSgp
LCBDdXN0b21HZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwganNUZXN0RW5hYmxlZEJ5U2V0dGluZ19U
ZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yLCBudWxscHRyKSwgYXR0cmlidXRl
c0ZvclN0cnVjdHVyZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0pKSk7CiAgICAgaWYgKGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2Jh
bE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZXR0aW5nc1ZhbHVlcygpLnRl
c3RTZXR0aW5nRW5hYmxlZCkKLSAgICAgICAgcHV0RGlyZWN0Q3VzdG9tQWNjZXNzb3Iodm0sIHdl
YkNvcmVCdWlsdGluTmFtZXModm0pLlRlc3RTdWJPYmpFbmFibGVkQnlTZXR0aW5nUHJpdmF0ZVBy
aXZhdGVOYW1lKCksIEN1c3RvbUdldHRlclNldHRlcjo6Y3JlYXRlKHZtLCBqc1Rlc3RFbmFibGVk
QnlTZXR0aW5nX1Rlc3RTdWJPYmpFbmFibGVkQnlTZXR0aW5nUHJpdmF0ZUNvbnN0cnVjdG9yLCBu
dWxscHRyKSwgYXR0cmlidXRlc0ZvclN0cnVjdHVyZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKSk7CisgICAgICAgIHB1dERpcmVjdEN1c3Rv
bUFjY2Vzc29yKHZtLCBidWlsdGluTmFtZXModm0pLlRlc3RTdWJPYmpFbmFibGVkQnlTZXR0aW5n
UHJpdmF0ZVByaXZhdGVOYW1lKCksIEN1c3RvbUdldHRlclNldHRlcjo6Y3JlYXRlKHZtLCBqc1Rl
c3RFbmFibGVkQnlTZXR0aW5nX1Rlc3RTdWJPYmpFbmFibGVkQnlTZXR0aW5nUHJpdmF0ZUNvbnN0
cnVjdG9yLCBudWxscHRyKSwgYXR0cmlidXRlc0ZvclN0cnVjdHVyZShzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKSk7CiAgICAgaWYgKGpzQ2Fz
dDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLT5zZXR0aW5nc1ZhbHVlcygpLnRlc3RTZXR0aW5nRW5hYmxlZCkgewotICAgICAgICBw
dXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwgd2ViQ29yZUJ1aWx0aW5OYW1lcyh2bSkuVGVzdFN1
Yk9iakVuYWJsZWRCeVNldHRpbmdQcml2YXRlUHVibGljUHVibGljTmFtZSgpLCBDdXN0b21HZXR0
ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwganNUZXN0RW5hYmxlZEJ5U2V0dGluZ19UZXN0U3ViT2JqRW5h
YmxlZEJ5U2V0dGluZ1ByaXZhdGVQdWJsaWNDb25zdHJ1Y3RvciwgbnVsbHB0ciksIGF0dHJpYnV0
ZXNGb3JTdHJ1Y3R1cmUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtKSkpOwotICAgICAgICBwdXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwgd2Vi
Q29yZUJ1aWx0aW5OYW1lcyh2bSkuVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRpbmdQcml2YXRlUHVi
bGljUHJpdmF0ZU5hbWUoKSwgQ3VzdG9tR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sIGpzVGVzdEVu
YWJsZWRCeVNldHRpbmdfVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRpbmdQcml2YXRlUHVibGljQ29u
c3RydWN0b3IsIG51bGxwdHIpLCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKHN0YXRpY19jYXN0PHVu
c2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpKTsKKyAgICAgICAgcHV0
RGlyZWN0Q3VzdG9tQWNjZXNzb3Iodm0sIGJ1aWx0aW5OYW1lcyh2bSkuVGVzdFN1Yk9iakVuYWJs
ZWRCeVNldHRpbmdQcml2YXRlUHVibGljUHVibGljTmFtZSgpLCBDdXN0b21HZXR0ZXJTZXR0ZXI6
OmNyZWF0ZSh2bSwganNUZXN0RW5hYmxlZEJ5U2V0dGluZ19UZXN0U3ViT2JqRW5hYmxlZEJ5U2V0
dGluZ1ByaXZhdGVQdWJsaWNDb25zdHJ1Y3RvciwgbnVsbHB0ciksIGF0dHJpYnV0ZXNGb3JTdHJ1
Y3R1cmUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtKSkpOworICAgICAgICBwdXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwgYnVpbHRpbk5hbWVz
KHZtKS5UZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZ1ByaXZhdGVQdWJsaWNQcml2YXRlTmFtZSgp
LCBDdXN0b21HZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwganNUZXN0RW5hYmxlZEJ5U2V0dGluZ19U
ZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZ1ByaXZhdGVQdWJsaWNDb25zdHJ1Y3RvciwgbnVsbHB0
ciksIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSkpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRGb3JDb250
ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RF
bmFibGVkRm9yQ29udGV4dC5jcHAKaW5kZXggMDlkYWY4MWVkZDZmNmYzOTFlYTEwMGMyMDM5ZGEz
ZmQ0NDY0Y2E1Zi4uNjY0MTY3MjA3MmE1MmI3M2FlN2ViYzhhODY0OGRlNDJkMzNmZTllNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVu
YWJsZWRGb3JDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEZvckNvbnRleHQuY3BwCkBAIC0xMzQsNyArMTM0LDcgQEAg
dm9pZCBKU1Rlc3RFbmFibGVkRm9yQ29udGV4dDo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogICAg
IHN0YXRpY19hc3NlcnQoIXN0ZDo6aXNfYmFzZV9vZjxBY3RpdmVET01PYmplY3QsIFRlc3RFbmFi
bGVkRm9yQ29udGV4dD46OnZhbHVlLCAiSW50ZXJmYWNlIGlzIG5vdCBtYXJrZWQgYXMgW0FjdGl2
ZURPTU9iamVjdF0gZXZlbiB0aG91Z2ggaW1wbGVtZW50YXRpb24gY2xhc3Mgc3ViY2xhc3NlcyBB
Y3RpdmVET01PYmplY3QuIik7CiAKICAgICBpZiAoKGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+
KGdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZXR0aW5nc1ZhbHVl
cygpLnRlc3RTZXR0aW5nRW5hYmxlZCAmJiBUZXN0U3ViT2JqRW5hYmxlZEZvckNvbnRleHQ6OmVu
YWJsZWRGb3JDb250ZXh0KCpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3Qo
KSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkpKQotICAgICAgICBwdXREaXJlY3RDdXN0b21B
Y2Nlc3Nvcih2bSwgd2ViQ29yZUJ1aWx0aW5OYW1lcyh2bSkuVGVzdFN1Yk9iakVuYWJsZWRGb3JD
b250ZXh0UHVibGljTmFtZSgpLCBDdXN0b21HZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwganNUZXN0
RW5hYmxlZEZvckNvbnRleHRfVGVzdFN1Yk9iakVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3Is
IG51bGxwdHIpLCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpKTsKKyAgICAgICAgcHV0RGlyZWN0Q3Vz
dG9tQWNjZXNzb3Iodm0sIGJ1aWx0aW5OYW1lcyh2bSkuVGVzdFN1Yk9iakVuYWJsZWRGb3JDb250
ZXh0UHVibGljTmFtZSgpLCBDdXN0b21HZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwganNUZXN0RW5h
YmxlZEZvckNvbnRleHRfVGVzdFN1Yk9iakVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3IsIG51
bGxwdHIpLCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpKTsKIH0KIAogSlNPYmplY3QqIEpTVGVzdEVu
YWJsZWRGb3JDb250ZXh0OjpjcmVhdGVQcm90b3R5cGUoVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVj
dCYgZ2xvYmFsT2JqZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2xvYmFsT2JqZWN0LmNwcAppbmRleCA2M2JiZThl
YjIxODc1MzMyMDI5YTkxNGMxOTViZjI2OTVjMWZkMjFjLi41YzJjZjNhMzFlNGIwYWQ1MzdhMjcw
ZGY4Y2YzZjdjNDBiNGVmMTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2xvYmFsT2JqZWN0LmNwcApAQCAtNjc3
LDQzICs2NzcsNDMgQEAgdm9pZCBKU1Rlc3RHbG9iYWxPYmplY3Q6OmZpbmlzaENyZWF0aW9uKFZN
JiB2bSkKIAogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCiAgICAgaWYgKFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkudGVzdEZlYXR1cmVFbmFibGVkKCkpCi0gICAgICAg
IHB1dERpcmVjdEN1c3RvbUFjY2Vzc29yKHZtLCB3ZWJDb3JlQnVpbHRpbk5hbWVzKHZtKS5lbmFi
bGVkQXRSdW50aW1lQXR0cmlidXRlUHVibGljTmFtZSgpLCBDdXN0b21HZXR0ZXJTZXR0ZXI6OmNy
ZWF0ZSh2bSwganNUZXN0R2xvYmFsT2JqZWN0X2VuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUsIHNl
dEpTVGVzdEdsb2JhbE9iamVjdF9lbmFibGVkQXRSdW50aW1lQXR0cmlidXRlKSwgYXR0cmlidXRl
c0ZvclN0cnVjdHVyZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6Q3VzdG9tQWNjZXNzb3IpKSk7CisgICAgICAgIHB1dERpcmVjdEN1c3RvbUFjY2Vzc29yKHZt
LCBidWlsdGluTmFtZXModm0pLmVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVQdWJsaWNOYW1lKCks
IEN1c3RvbUdldHRlclNldHRlcjo6Y3JlYXRlKHZtLCBqc1Rlc3RHbG9iYWxPYmplY3RfZW5hYmxl
ZEF0UnVudGltZUF0dHJpYnV0ZSwgc2V0SlNUZXN0R2xvYmFsT2JqZWN0X2VuYWJsZWRBdFJ1bnRp
bWVBdHRyaWJ1dGUpLCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKHN0YXRpY19jYXN0PHVuc2lnbmVk
PihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvcikpKTsKICNlbmRpZgogICAg
IGlmIChqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKS0+aXNTZWN1cmVDb250ZXh0KCkpCi0gICAgICAgIHB1dERpcmVjdEN1
c3RvbUFjY2Vzc29yKHZtLCB3ZWJDb3JlQnVpbHRpbk5hbWVzKHZtKS5UZXN0SW50ZXJmYWNlTmFt
ZVB1YmxpY05hbWUoKSwgQ3VzdG9tR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sIGpzVGVzdEdsb2Jh
bE9iamVjdF9UZXN0SW50ZXJmYWNlTmFtZUNvbnN0cnVjdG9yLCBudWxscHRyKSwgYXR0cmlidXRl
c0ZvclN0cnVjdHVyZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0pKSk7Ci0gICAgcHV0RGlyZWN0Q3VzdG9tQWNjZXNzb3Iodm0sIHdlYkNvcmVC
dWlsdGluTmFtZXModm0pLnB1YmxpY0FuZFByaXZhdGVBdHRyaWJ1dGVQcml2YXRlTmFtZSgpLCBD
dXN0b21HZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwganNUZXN0R2xvYmFsT2JqZWN0X3B1YmxpY0Fu
ZFByaXZhdGVBdHRyaWJ1dGUsIG51bGxwdHIpLCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpS
ZWFkT25seSkpOworICAgICAgICBwdXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwgYnVpbHRpbk5h
bWVzKHZtKS5UZXN0SW50ZXJmYWNlTmFtZVB1YmxpY05hbWUoKSwgQ3VzdG9tR2V0dGVyU2V0dGVy
OjpjcmVhdGUodm0sIGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0SW50ZXJmYWNlTmFtZUNvbnN0cnVj
dG9yLCBudWxscHRyKSwgYXR0cmlidXRlc0ZvclN0cnVjdHVyZShzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKSk7CisgICAgcHV0RGlyZWN0Q3Vz
dG9tQWNjZXNzb3Iodm0sIGJ1aWx0aW5OYW1lcyh2bSkucHVibGljQW5kUHJpdmF0ZUF0dHJpYnV0
ZVByaXZhdGVOYW1lKCksIEN1c3RvbUdldHRlclNldHRlcjo6Y3JlYXRlKHZtLCBqc1Rlc3RHbG9i
YWxPYmplY3RfcHVibGljQW5kUHJpdmF0ZUF0dHJpYnV0ZSwgbnVsbHB0ciksIGF0dHJpYnV0ZXNG
b3JTdHJ1Y3R1cmUoSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KSk7CiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKLSAg
ICBwdXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwgd2ViQ29yZUJ1aWx0aW5OYW1lcyh2bSkucHVi
bGljQW5kUHJpdmF0ZUNvbmRpdGlvbmFsQXR0cmlidXRlUHJpdmF0ZU5hbWUoKSwgQ3VzdG9tR2V0
dGVyU2V0dGVyOjpjcmVhdGUodm0sIGpzVGVzdEdsb2JhbE9iamVjdF9wdWJsaWNBbmRQcml2YXRl
Q29uZGl0aW9uYWxBdHRyaWJ1dGUsIG51bGxwdHIpLCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpSZWFkT25seSkpOworICAgIHB1dERpcmVjdEN1c3RvbUFjY2Vzc29yKHZtLCBidWlsdGluTmFt
ZXModm0pLnB1YmxpY0FuZFByaXZhdGVDb25kaXRpb25hbEF0dHJpYnV0ZVByaXZhdGVOYW1lKCks
IEN1c3RvbUdldHRlclNldHRlcjo6Y3JlYXRlKHZtLCBqc1Rlc3RHbG9iYWxPYmplY3RfcHVibGlj
QW5kUHJpdmF0ZUNvbmRpdGlvbmFsQXR0cmlidXRlLCBudWxscHRyKSwgYXR0cmlidXRlc0ZvclN0
cnVjdHVyZShKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6UmVhZE9ubHkpKTsKICNlbmRpZgogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUp
CiAgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkudGVzdEZl
YXR1cmVFbmFibGVkKCkpCi0gICAgICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uKHZtLCB0aGlz
LCB3ZWJDb3JlQnVpbHRpbk5hbWVzKHZtKS5lbmFibGVkQXRSdW50aW1lT3BlcmF0aW9uUHVibGlj
TmFtZSgpLCAxLCBqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uX2VuYWJsZWRBdFJ1
bnRpbWVPcGVyYXRpb24sIE5vSW50cmluc2ljLCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbikpKTsKKyAg
ICAgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb24odm0sIHRoaXMsIGJ1aWx0aW5OYW1lcyh2bSku
ZW5hYmxlZEF0UnVudGltZU9wZXJhdGlvblB1YmxpY05hbWUoKSwgMSwganNUZXN0R2xvYmFsT2Jq
ZWN0SW5zdGFuY2VGdW5jdGlvbl9lbmFibGVkQXRSdW50aW1lT3BlcmF0aW9uLCBOb0ludHJpbnNp
YywgYXR0cmlidXRlc0ZvclN0cnVjdHVyZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pKSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoVEVTVF9GRUFU
VVJFKQogICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnRl
c3RGZWF0dXJlRW5hYmxlZCgpKQotICAgICAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbih2bSwg
dGhpcywgd2ViQ29yZUJ1aWx0aW5OYW1lcyh2bSkuZW5hYmxlZEF0UnVudGltZU9wZXJhdGlvblN0
YXRpY1B1YmxpY05hbWUoKSwgMSwganNUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3JGdW5jdGlv
bl9lbmFibGVkQXRSdW50aW1lT3BlcmF0aW9uU3RhdGljLCBOb0ludHJpbnNpYywgYXR0cmlidXRl
c0ZvclN0cnVjdHVyZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RnVuY3Rpb24pKSk7CisgICAgICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uKHZtLCB0aGlz
LCBidWlsdGluTmFtZXModm0pLmVuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb25TdGF0aWNQdWJsaWNO
YW1lKCksIDEsIGpzVGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yRnVuY3Rpb25fZW5hYmxlZEF0
UnVudGltZU9wZXJhdGlvblN0YXRpYywgTm9JbnRyaW5zaWMsIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1
cmUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9u
KSkpOwogI2VuZGlmCiAgICAgaWYgKHdvcmxkRm9yRE9NT2JqZWN0KCp0aGlzKS5zcGVjaWZpY1dv
cmxkKCkpCi0gICAgICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uKHZtLCB0aGlzLCB3ZWJDb3Jl
QnVpbHRpbk5hbWVzKHZtKS5lbmFibGVkSW5TcGVjaWZpY1dvcmxkUHVibGljTmFtZSgpLCAxLCBq
c1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uX2VuYWJsZWRJblNwZWNpZmljV29ybGQs
IE5vSW50cmluc2ljLCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKHN0YXRpY19jYXN0PHVuc2lnbmVk
PihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbikpKTsKKyAgICAgICAgcHV0RGlyZWN0
TmF0aXZlRnVuY3Rpb24odm0sIHRoaXMsIGJ1aWx0aW5OYW1lcyh2bSkuZW5hYmxlZEluU3BlY2lm
aWNXb3JsZFB1YmxpY05hbWUoKSwgMSwganNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlv
bl9lbmFibGVkSW5TcGVjaWZpY1dvcmxkLCBOb0ludHJpbnNpYywgYXR0cmlidXRlc0ZvclN0cnVj
dHVyZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rp
b24pKSk7CiAgICAgaWYgKCh3b3JsZEZvckRPTU9iamVjdCgqdGhpcykuc3BlY2lmaWNXb3JsZCgp
ICYmIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkudGVzdEZlYXR1cmVF
bmFibGVkKCkpKQotICAgICAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbih2bSwgdGhpcywgd2Vi
Q29yZUJ1aWx0aW5OYW1lcyh2bSkuZW5hYmxlZEluU3BlY2lmaWNXb3JsZFdoZW5SdW50aW1lRmVh
dHVyZUVuYWJsZWRQdWJsaWNOYW1lKCksIDEsIGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVu
Y3Rpb25fZW5hYmxlZEluU3BlY2lmaWNXb3JsZFdoZW5SdW50aW1lRmVhdHVyZUVuYWJsZWQsIE5v
SW50cmluc2ljLCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbikpKTsKKyAgICAgICAgcHV0RGlyZWN0TmF0
aXZlRnVuY3Rpb24odm0sIHRoaXMsIGJ1aWx0aW5OYW1lcyh2bSkuZW5hYmxlZEluU3BlY2lmaWNX
b3JsZFdoZW5SdW50aW1lRmVhdHVyZUVuYWJsZWRQdWJsaWNOYW1lKCksIDEsIGpzVGVzdEdsb2Jh
bE9iamVjdEluc3RhbmNlRnVuY3Rpb25fZW5hYmxlZEluU3BlY2lmaWNXb3JsZFdoZW5SdW50aW1l
RmVhdHVyZUVuYWJsZWQsIE5vSW50cmluc2ljLCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbikpKTsKICAg
ICBpZiAoKHdvcmxkRm9yRE9NT2JqZWN0KCp0aGlzKS5zcGVjaWZpY1dvcmxkKCkgJiYgUnVudGlt
ZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS50ZXN0RmVhdHVyZUVuYWJsZWQoKSAm
JiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnRlc3RGZWF0dXJlMUVu
YWJsZWQoKSkpCi0gICAgICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uKHZtLCB0aGlzLCB3ZWJD
b3JlQnVpbHRpbk5hbWVzKHZtKS5lbmFibGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1bnRpbWVGZWF0
dXJlc0VuYWJsZWRQdWJsaWNOYW1lKCksIDEsIGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVu
Y3Rpb25fZW5hYmxlZEluU3BlY2lmaWNXb3JsZFdoZW5SdW50aW1lRmVhdHVyZXNFbmFibGVkLCBO
b0ludHJpbnNpYywgYXR0cmlidXRlc0ZvclN0cnVjdHVyZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pKSk7CisgICAgICAgIHB1dERpcmVjdE5h
dGl2ZUZ1bmN0aW9uKHZtLCB0aGlzLCBidWlsdGluTmFtZXModm0pLmVuYWJsZWRJblNwZWNpZmlj
V29ybGRXaGVuUnVudGltZUZlYXR1cmVzRW5hYmxlZFB1YmxpY05hbWUoKSwgMSwganNUZXN0R2xv
YmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbl9lbmFibGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1bnRp
bWVGZWF0dXJlc0VuYWJsZWQsIE5vSW50cmluc2ljLCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbikpKTsK
ICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQogICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVz
OjpzaGFyZWRGZWF0dXJlcygpLnRlc3RGZWF0dXJlRW5hYmxlZCgpKQotICAgICAgICBwdXREaXJl
Y3ROYXRpdmVGdW5jdGlvbih2bSwgdGhpcywgd2ViQ29yZUJ1aWx0aW5OYW1lcyh2bSkudGVzdFBy
aXZhdGVGdW5jdGlvblByaXZhdGVOYW1lKCksIDAsIGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNl
RnVuY3Rpb25fdGVzdFByaXZhdGVGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIGF0dHJpYnV0ZXNGb3JT
dHJ1Y3R1cmUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1
bmN0aW9uKSkpOworICAgICAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbih2bSwgdGhpcywgYnVp
bHRpbk5hbWVzKHZtKS50ZXN0UHJpdmF0ZUZ1bmN0aW9uUHJpdmF0ZU5hbWUoKSwgMCwganNUZXN0
R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbl90ZXN0UHJpdmF0ZUZ1bmN0aW9uLCBOb0ludHJp
bnNpYywgYXR0cmlidXRlc0ZvclN0cnVjdHVyZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pKSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoVEVTVF9G
RUFUVVJFKQogICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygp
LnRlc3RGZWF0dXJlRW5hYmxlZCgpKQotICAgICAgICBwdXREaXJlY3RCdWlsdGluRnVuY3Rpb24o
dm0sIHRoaXMsIHdlYkNvcmVCdWlsdGluTmFtZXModm0pLnRlc3RKU0J1aWx0aW5GdW5jdGlvblB1
YmxpY05hbWUoKSwgdGVzdEdsb2JhbE9iamVjdFRlc3RKU0J1aWx0aW5GdW5jdGlvbkNvZGVHZW5l
cmF0b3Iodm0pLCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpCdWlsdGluKSkpOworICAgICAgICBwdXREaXJlY3RCdWls
dGluRnVuY3Rpb24odm0sIHRoaXMsIGJ1aWx0aW5OYW1lcyh2bSkudGVzdEpTQnVpbHRpbkZ1bmN0
aW9uUHVibGljTmFtZSgpLCB0ZXN0R2xvYmFsT2JqZWN0VGVzdEpTQnVpbHRpbkZ1bmN0aW9uQ29k
ZUdlbmVyYXRvcih2bSksIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkJ1aWx0aW4pKSk7CiAjZW5kaWYKICAgICBpZiAo
anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRp
b25Db250ZXh0KCktPmlzU2VjdXJlQ29udGV4dCgpKQotICAgICAgICBwdXREaXJlY3ROYXRpdmVG
dW5jdGlvbih2bSwgdGhpcywgd2ViQ29yZUJ1aWx0aW5OYW1lcyh2bSkuY2FsY3VsYXRlU2VjcmV0
UmVzdWx0UHVibGljTmFtZSgpLCAwLCBqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9u
X2NhbGN1bGF0ZVNlY3JldFJlc3VsdCwgTm9JbnRyaW5zaWMsIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1
cmUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9u
KSkpOworICAgICAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbih2bSwgdGhpcywgYnVpbHRpbk5h
bWVzKHZtKS5jYWxjdWxhdGVTZWNyZXRSZXN1bHRQdWJsaWNOYW1lKCksIDAsIGpzVGVzdEdsb2Jh
bE9iamVjdEluc3RhbmNlRnVuY3Rpb25fY2FsY3VsYXRlU2VjcmV0UmVzdWx0LCBOb0ludHJpbnNp
YywgYXR0cmlidXRlc0ZvclN0cnVjdHVyZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pKSk7CiAgICAgaWYgKGpzQ2FzdDxKU0RPTUdsb2JhbE9i
amVjdCo+KGdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc1NlY3Vy
ZUNvbnRleHQoKSkKLSAgICAgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb24odm0sIHRoaXMsIHdl
YkNvcmVCdWlsdGluTmFtZXModm0pLmdldFNlY3JldEJvb2xlYW5QdWJsaWNOYW1lKCksIDAsIGpz
VGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25fZ2V0U2VjcmV0Qm9vbGVhbiwgTm9JbnRy
aW5zaWMsIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSkpOworICAgICAgICBwdXREaXJlY3ROYXRpdmVG
dW5jdGlvbih2bSwgdGhpcywgYnVpbHRpbk5hbWVzKHZtKS5nZXRTZWNyZXRCb29sZWFuUHVibGlj
TmFtZSgpLCAwLCBqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uX2dldFNlY3JldEJv
b2xlYW4sIE5vSW50cmluc2ljLCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKHN0YXRpY19jYXN0PHVu
c2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbikpKTsKICNpZiBFTkFCTEUo
VEVTVF9GRUFUVVJFKQogICAgIGlmICgoanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFs
T2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzU2VjdXJlQ29udGV4dCgpICYm
IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkudGVzdEZlYXR1cmVFbmFi
bGVkKCkpKQotICAgICAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbih2bSwgdGhpcywgd2ViQ29y
ZUJ1aWx0aW5OYW1lcyh2bSkudGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuUHVibGljTmFtZSgp
LCAwLCBqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uX3Rlc3RGZWF0dXJlR2V0U2Vj
cmV0Qm9vbGVhbiwgTm9JbnRyaW5zaWMsIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSkpOworICAgICAg
ICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbih2bSwgdGhpcywgYnVpbHRpbk5hbWVzKHZtKS50ZXN0
RmVhdHVyZUdldFNlY3JldEJvb2xlYW5QdWJsaWNOYW1lKCksIDAsIGpzVGVzdEdsb2JhbE9iamVj
dEluc3RhbmNlRnVuY3Rpb25fdGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuLCBOb0ludHJpbnNp
YywgYXR0cmlidXRlc0ZvclN0cnVjdHVyZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pKSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAppbmRleCA2
ZWIzNGYyODhkZmFhNmQ4M2EwMzQxYzM2ODBjNmM5YTgzNTIwOWYxLi5mNDdjZDExMTQ1M2NlNWU1
NjQ3YTNjZjBmNWI4NWEyZmMzMTI5YWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApAQCAtMjUyOCw4ICsyNTI4LDgg
QEAgdm9pZCBKU1Rlc3RPYmpQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKICAgICB9
CiAgICAgaWYgKGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgJiYgc3RydWN0dXJlKCktPmlz
RGljdGlvbmFyeSgpKQogICAgICAgICBmbGF0dGVuRGljdGlvbmFyeU9iamVjdCh2bSk7Ci0gICAg
cHV0RGlyZWN0KHZtLCB3ZWJDb3JlQnVpbHRpbk5hbWVzKHZtKS5wcml2YXRlTWV0aG9kUHJpdmF0
ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QoKSwgMCwgU3RyaW5n
KCksIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3ByaXZhdGVNZXRob2QpLCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
KTsKLSAgICBwdXREaXJlY3Qodm0sIHdlYkNvcmVCdWlsdGluTmFtZXModm0pLnB1YmxpY0FuZFBy
aXZhdGVNZXRob2RQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIGdsb2JhbE9i
amVjdCgpLCAwLCBTdHJpbmcoKSwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fcHVibGljQW5k
UHJpdmF0ZU1ldGhvZCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOworICAgIHB1dERpcmVjdCh2bSwgYnVpbHRpbk5h
bWVzKHZtKS5wcml2YXRlTWV0aG9kUHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZt
LCBnbG9iYWxPYmplY3QoKSwgMCwgU3RyaW5nKCksIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
X3ByaXZhdGVNZXRob2QpLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKKyAgICBwdXREaXJlY3Qodm0sIGJ1aWx0aW5O
YW1lcyh2bSkucHVibGljQW5kUHJpdmF0ZU1ldGhvZFByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246
OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0KCksIDAsIFN0cmluZygpLCBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbl9wdWJsaWNBbmRQcml2YXRlTWV0aG9kKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiAgICAgcHV0
RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5pdGVyYXRvclN5bWJvbCwgZ2xvYmFsT2JqZWN0
KCktPmFycmF5UHJvdG90eXBlKCktPmdldERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVp
bHRpbk5hbWVzKCkudmFsdWVzUHJpdmF0ZU5hbWUoKSksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwogICAgIGFkZFZhbHVlSXRlcmFibGVN
ZXRob2RzKCpnbG9iYWxPYmplY3QoKSwgKnRoaXMpOwogICAgIEpTT2JqZWN0JiB1bnNjb3BhYmxl
cyA9ICpjb25zdHJ1Y3RFbXB0eU9iamVjdChnbG9iYWxPYmplY3QoKS0+dm0oKSwgZ2xvYmFsT2Jq
ZWN0KCktPm51bGxQcm90b3R5cGVPYmplY3RTdHJ1Y3R1cmUoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBiNmM2MjZkZDIwOWIwYzNiNzM1M2VhMjBjOWM4
NmI2ZjNiMTg1MDBkLi4xMzZkOTU5MjczZmYzNmQ1OWZlODc3YTg2MzRhNGIwZjFlNDc4M2JkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTQ2MDksNyArNDYw
OSw3IEBAIHN0YXRpYyBKU0M6OkpTVmFsdWUgY29udHJvbGxlckpTVmFsdWUoSlNDOjpKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwKICAgICBpZiAoIWNvbnRyb2xzSG9zdEpTV3Jh
cHBlck9iamVjdCkKICAgICAgICAgcmV0dXJuIEpTQzo6anNOdWxsKCk7CiAKLSAgICBKU0M6Oklk
ZW50aWZpZXIgY29udHJvbGxlcklEID0gd2ViQ29yZUJ1aWx0aW5OYW1lcyh2bSkuY29udHJvbGxl
clB1YmxpY05hbWUoKTsKKyAgICBKU0M6OklkZW50aWZpZXIgY29udHJvbGxlcklEID0gYnVpbHRp
bk5hbWVzKHZtKS5jb250cm9sbGVyUHVibGljTmFtZSgpOwogICAgIEpTQzo6SlNWYWx1ZSBjb250
cm9sbGVySlNXcmFwcGVyID0gY29udHJvbHNIb3N0SlNXcmFwcGVyT2JqZWN0LT5nZXQoJmxleGlj
YWxHbG9iYWxPYmplY3QsIGNvbnRyb2xsZXJJRCk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgSlNDOjpqc051bGwoKSk7CiAKQEAgLTc3NTksNyArNzc1OSw3IEBAIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6ZGlkQWRkVXNlckFnZW50U2hhZG93Um9vdChTaGFkb3dSb290JiByb290KQog
ICAgICAgICBpZiAoIW1lZGlhQ29udHJvbHNIb3N0SlNXcmFwcGVyT2JqZWN0KQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgIGF1dG8gY29udHJvbGxlciA9IHdlYkNvcmVCdWls
dGluTmFtZXModm0pLmNvbnRyb2xsZXJQdWJsaWNOYW1lKCk7CisgICAgICAgIGF1dG8gY29udHJv
bGxlciA9IGJ1aWx0aW5OYW1lcyh2bSkuY29udHJvbGxlclB1YmxpY05hbWUoKTsKIAogICAgICAg
ICBBU1NFUlQoIWNvbnRyb2xsZXJPYmplY3QtPmhhc1Byb3BlcnR5KCZsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBjb250cm9sbGVyKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRl
eCAyYjkwN2ZkNzc5NzdkZThjMDQ0Y2MyNTkzZTIzMzIxYTA5YTRjNjUxLi5hZDA3NjYzNjA2ZTZj
MDNmMjBkMTUzMGYwNmE2MWYxM2RmMmRhYzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwCkBAIC01MDcyLDcgKzUwNzIsNyBAQCBib29sIEludGVybmFsczo6aXNSZWFkYWJsZVN0
cmVhbURpc3R1cmJlZChKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZQogSlNW
YWx1ZSBJbnRlcm5hbHM6OmNsb25lQXJyYXlCdWZmZXIoSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNWYWx1ZSBidWZmZXIsIEpTVmFsdWUgc3JjQnl0ZU9mZnNldCwg
SlNWYWx1ZSBzcmNMZW5ndGgpCiB7CiAgICAgYXV0byYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0
LnZtKCk7Ci0gICAgY29uc3QgSWRlbnRpZmllciYgcHJpdmF0ZU5hbWUgPSB3ZWJDb3JlQnVpbHRp
bk5hbWVzKHZtKS5jbG9uZUFycmF5QnVmZmVyUHJpdmF0ZU5hbWUoKTsKKyAgICBjb25zdCBJZGVu
dGlmaWVyJiBwcml2YXRlTmFtZSA9IGJ1aWx0aW5OYW1lcyh2bSkuY2xvbmVBcnJheUJ1ZmZlclBy
aXZhdGVOYW1lKCk7CiAgICAgSlNWYWx1ZSB2YWx1ZTsKICAgICBQcm9wZXJ0eVNsb3QgcHJvcGVy
dHlTbG90KHZhbHVlLCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6R2V0KTsKICAg
ICBsZXhpY2FsR2xvYmFsT2JqZWN0Lm1ldGhvZFRhYmxlKHZtKS0+Z2V0T3duUHJvcGVydHlTbG90
KCZsZXhpY2FsR2xvYmFsT2JqZWN0LCAmbGV4aWNhbEdsb2JhbE9iamVjdCwgcHJpdmF0ZU5hbWUs
IHByb3BlcnR5U2xvdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCAzYTViYWM5ZWMwYmRkMzRh
OWYyZTkwMGZlNTllYzI1MjM1YmIzNjhkLi4zMjVmMjNiZjA5MjhkM2M4OGYyMzVjZDQ4YzRiOTg0
MDY5YWNhZWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29y
a2xldFNjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTMwNSw3ICszMDUsNyBAQCBib29s
IFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGVTeW5jaHJvbm91c2x5
KFdvcmtlclNjcmlwdEZldGNoZQogICAgICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfQ0FU
Q0hfU0NPUEUodm0pOwogICAgICAgICAgICAgaWYgKGVycm9yVmFsdWUuaXNPYmplY3QoKSkgewog
ICAgICAgICAgICAgICAgIGF1dG8qIG9iamVjdCA9IEpTQzo6YXNPYmplY3QoZXJyb3JWYWx1ZSk7
Ci0gICAgICAgICAgICAgICAgaWYgKEpTVmFsdWUgZmFpbHVyZUtpbmRWYWx1ZSA9IG9iamVjdC0+
Z2V0RGlyZWN0KHZtLCB3ZWJDb3JlQnVpbHRpbk5hbWVzKHZtKS5mYWlsdXJlS2luZFByaXZhdGVO
YW1lKCkpKSB7CisgICAgICAgICAgICAgICAgaWYgKEpTVmFsdWUgZmFpbHVyZUtpbmRWYWx1ZSA9
IG9iamVjdC0+Z2V0RGlyZWN0KHZtLCBidWlsdGluTmFtZXModm0pLmZhaWx1cmVLaW5kUHJpdmF0
ZU5hbWUoKSkpIHsKICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBob3N0IHByb3BhZ2F0
ZWQgZXJyb3IgaW4gdGhlIG1vZHVsZSBsb2FkZXIgcGlwZWxpbmUuCiAgICAgICAgICAgICAgICAg
ICAgIHN3aXRjaCAoc3RhdGljX2Nhc3Q8TW9kdWxlRmV0Y2hGYWlsdXJlS2luZD4oZmFpbHVyZUtp
bmRWYWx1ZS5hc0ludDMyKCkpKSB7CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgTW9kdWxlRmV0
Y2hGYWlsdXJlS2luZDo6V2FzUHJvcGFnYXRlZEVycm9yOgpAQCAtNDgwLDcgKzQ4MCw3IEBAIHZv
aWQgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6bG9hZEFuZEV2YWx1YXRlTW9kdWxl
KGNvbnN0IFVSTCYgbW9kdWxlVVJMCiAgICAgICAgICAgICBKU1ZhbHVlIGVycm9yVmFsdWUgPSBj
YWxsRnJhbWUtPmFyZ3VtZW50KDApOwogICAgICAgICAgICAgaWYgKGVycm9yVmFsdWUuaXNPYmpl
Y3QoKSkgewogICAgICAgICAgICAgICAgIGF1dG8qIG9iamVjdCA9IEpTQzo6YXNPYmplY3QoZXJy
b3JWYWx1ZSk7Ci0gICAgICAgICAgICAgICAgaWYgKEpTVmFsdWUgZmFpbHVyZUtpbmRWYWx1ZSA9
IG9iamVjdC0+Z2V0RGlyZWN0KHZtLCB3ZWJDb3JlQnVpbHRpbk5hbWVzKHZtKS5mYWlsdXJlS2lu
ZFByaXZhdGVOYW1lKCkpKSB7CisgICAgICAgICAgICAgICAgaWYgKEpTVmFsdWUgZmFpbHVyZUtp
bmRWYWx1ZSA9IG9iamVjdC0+Z2V0RGlyZWN0KHZtLCBidWlsdGluTmFtZXModm0pLmZhaWx1cmVL
aW5kUHJpdmF0ZU5hbWUoKSkpIHsKICAgICAgICAgICAgICAgICAgICAgYXV0byBjYXRjaFNjb3Bl
ID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CiAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBt
ZXNzYWdlID0gcmV0cmlldmVFcnJvck1lc3NhZ2VXaXRob3V0TmFtZSgqZ2xvYmFsT2JqZWN0LCB2
bSwgb2JqZWN0LCBjYXRjaFNjb3BlKTsKICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChzdGF0
aWNfY2FzdDxNb2R1bGVGZXRjaEZhaWx1cmVLaW5kPihmYWlsdXJlS2luZFZhbHVlLmFzSW50MzIo
KSkpIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>