<?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>234265</bug_id>
          
          <creation_ts>2021-12-13 13:50:08 -0800</creation_ts>
          <short_desc>Teach webpushtool to register and &quot;host&quot; the daemon</short_desc>
          <delta_ts>2021-12-13 21:00:03 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit 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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>pangle</cc>
    
    <cc>saam</cc>
    
    <cc>thorton</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1823733</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-12-13 13:50:08 -0800</bug_when>
    <thetext>Teach webpushtool to register and &quot;host&quot; the daemon</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823737</commentid>
    <comment_count>1</comment_count>
      <attachid>447059</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-12-13 13:55:40 -0800</bug_when>
    <thetext>Created attachment 447059
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823797</commentid>
    <comment_count>2</comment_count>
      <attachid>447074</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-12-13 15:08:13 -0800</bug_when>
    <thetext>Created attachment 447074
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823842</commentid>
    <comment_count>3</comment_count>
      <attachid>447074</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-12-13 16:47:27 -0800</bug_when>
    <thetext>Comment on attachment 447074
Patch v2

View in context: https://bugs.webkit.org/attachment.cgi?id=447074&amp;action=review

&gt; Source/WebKit/webpushd/WebPushDaemon.mm:190
&gt; +    broadcastDebugMessage((JSC::MessageLevel)4, &quot;===\nCurrent connections:&quot;);

Does this really not have a name?

&gt; Source/WebKit/webpushd/webpushtool/WebPushToolConnection.h:55
&gt; +    Yes,
&gt; +    No,

Oh dear, please flip all of these enums to save people who use debuggers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823876</commentid>
    <comment_count>4</comment_count>
      <attachid>447094</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-12-13 19:06:12 -0800</bug_when>
    <thetext>Created attachment 447094
PFL v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823892</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-13 20:24:39 -0800</bug_when>
    <thetext>Committed r287009 (245214@main): &lt;https://commits.webkit.org/245214@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 447094.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823893</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-13 20:25:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/86448305&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823901</commentid>
    <comment_count>7</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-12-13 21:00:03 -0800</bug_when>
    <thetext>Did all the ConsoleTypes.h refactoring and *forgot to git add the change to use the JSC::MessageType enum in WebPushD*

Will do in followup.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447059</attachid>
            <date>2021-12-13 13:55:40 -0800</date>
            <delta_ts>2021-12-13 15:08:13 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>20145</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggYzNhODM4ZGExZjFlLi5jMDRhMWI0NzNmM2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNDUgQEAKKzIwMjEtMTItMTMgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgor
CisgICAgICAgIFRlYWNoIHdlYnB1c2h0b29sIHRvIHJlZ2lzdGVyIGFuZCAiaG9zdCIgdGhlIGRh
ZW1vbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
NDI2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENv
dmVyZWQgYnkgQVBJIHRlc3RzIHZlcmlmeWluZyBob3N0aW5nIG1vZGUgb3BlcmF0aW9uLgorCisg
ICAgICAgIEFzIHZhcmlvdXMgZW5naW5lZXJzIHdvcmsgb24gdmFyaW91cyBwYXJ0cyBvZiB0aGUg
cHJvamVjdCwgaXQncyBiZWNvbWUgYXBwYXJlbnQgdGhhdCBpdCdzIHN1cGVyIHVzZWZ1bAorICAg
ICAgICB0byBoYXZlIGEgdG9vbCBoYW5kbGUgdGhlICJzZXR0aW5nIHVwIiBvZiB0aGUgZGFlbW9u
IGl0c2VsZiwgdG8gYXZvaWQgbGF1bmNoY3RsLCBldGMuCisgICAgICAgIAorICAgICAgICBJbXBs
ZW1lbnQgdGhhdCwgYXMgd2VsbCBhcyBhIGZldyBvdGhlciBuaWNldGllcyBmb3VuZCB3aGlsZSB0
ZXN0aW5nLgorICAgICAgICAKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy93ZWJwdXNodG9vbC54
Y2NvbmZpZzoKKyAgICAgICAgKiBSZXNvdXJjZXMvd2VicHVzaHRvb2wuZW50aXRsZW1lbnRzOgor
ICAgICAgICAKKyAgICAgICAgKiBTaGFyZWQvRGFlbW9uL0RhZW1vblV0aWxpdGllcy5tbToKKyAg
ICAgICAgKFdlYktpdDo6c3RhcnRMaXN0ZW5pbmdGb3JNYWNoU2VydmljZUNvbm5lY3Rpb25zKToK
KyAgICAgICAgCisgICAgICAgICogd2VicHVzaGQvQXBwQnVuZGxlUmVxdWVzdC5tbToKKyAgICAg
ICAgKFdlYlB1c2hEOjpBcHBCdW5kbGVSZXF1ZXN0OjpzdGFydCk6CisgICAgICAgIAorICAgICAg
ICAqIHdlYnB1c2hkL1B1c2hDbGllbnRDb25uZWN0aW9uLmg6CisgICAgICAgICogd2VicHVzaGQv
UHVzaENsaWVudENvbm5lY3Rpb24ubW06CisgICAgICAgIChXZWJQdXNoRDo6Q2xpZW50Q29ubmVj
dGlvbjo6c2V0SG9zdEFwcEF1ZGl0VG9rZW5EYXRhKToKKyAgICAgICAgKFdlYlB1c2hEOjpDbGll
bnRDb25uZWN0aW9uOjpicm9hZGNhc3REZWJ1Z01lc3NhZ2UpOgorCisgICAgICAgICogd2VicHVz
aGQvV2ViUHVzaERhZW1vbi5oOgorICAgICAgICAqIHdlYnB1c2hkL1dlYlB1c2hEYWVtb24ubW06
CisgICAgICAgIChXZWJQdXNoRDo6RGFlbW9uOjpicm9hZGNhc3RBbGxDb25uZWN0aW9uSWRlbnRp
dGllcyk6CisKKyAgICAgICAgKiB3ZWJwdXNoZC93ZWJwdXNodG9vbC9XZWJQdXNoVG9vbENvbm5l
Y3Rpb24uaDoKKyAgICAgICAgKiB3ZWJwdXNoZC93ZWJwdXNodG9vbC9XZWJQdXNoVG9vbENvbm5l
Y3Rpb24ubW06CisgICAgICAgIChXZWJQdXNoVG9vbDo6Q29ubmVjdGlvbjo6Y29ubmVjdFRvU2Vy
dmljZSk6CisgICAgICAgIChXZWJQdXNoVG9vbDo6Q29ubmVjdGlvbjo6Y29ubmVjdGlvbkRyb3Bw
ZWQpOgorCisgICAgICAgICogd2VicHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRvb2xNYWluLm1t
OgorICAgICAgICAocHJpbnRVc2FnZUFuZFRlcm1pbmF0ZSk6CisgICAgICAgIChyZWdpc3RlckRh
ZW1vbldpdGhMYXVuY2hEKToKKyAgICAgICAgKG1haW4pOgorCiAyMDIxLTEyLTEwICBCcmFkeSBF
aWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBUZWFjaCB3ZWJwdXNoZCB0byBs
YXVuY2ggYW4gYXBwIGluIHJlc3BvbnNlIHRvIGFuIGluamVjdGVkIG1lc3NhZ2UuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL3dlYnB1c2h0b29sLnhjY29uZmlnIGIv
U291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy93ZWJwdXNodG9vbC54Y2NvbmZpZwppbmRleCBk
NTQyOTU5YjRhZGMuLjliN2I4NThmODdjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Db25m
aWd1cmF0aW9ucy93ZWJwdXNodG9vbC54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZp
Z3VyYXRpb25zL3dlYnB1c2h0b29sLnhjY29uZmlnCkBAIC0yOSw3ICsyOSwxNCBAQCBTS0lQX0lO
U1RBTEwgPSBZRVM7CiBFWENMVURFRF9TT1VSQ0VfRklMRV9OQU1FU1tzZGs9YXBwbGV0dipdID0g
KjsKIEVYQ0xVREVEX1NPVVJDRV9GSUxFX05BTUVTW3Nkaz13YXRjaCpdID0gKjsKIAotT1RIRVJf
TERGTEFHUyA9IC1mcmFtZXdvcmsgRm91bmRhdGlvbiAtZnJhbWV3b3JrIENvcmVGb3VuZGF0aW9u
IC1mcmFtZXdvcmsgV2ViS2l0IC1mcmFtZXdvcmsgSmF2YVNjcmlwdENvcmUKK1dLX0FQUFNFUlZF
UlNVUFBPUlRfTERGTEFHUyA9ICQoV0tfQVBQU0VSVkVSU1VQUE9SVF9MREZMQUdTXyQoV0tfUExB
VEZPUk1fTkFNRSkpOworV0tfQVBQU0VSVkVSU1VQUE9SVF9MREZMQUdTX21hY29zeCA9ICQoV0tf
QVBQU0VSVkVSU1VQUE9SVF9MREZMQUdTJChXS19NQUNPU18xMjAwKSk7CitXS19BUFBTRVJWRVJT
VVBQT1JUX0xERkxBR1NfTUFDT1NfU0lOQ0VfMTIwMCA9IC1mcmFtZXdvcmsgQXBwU2VydmVyU3Vw
cG9ydAorV0tfQVBQU0VSVkVSU1VQUE9SVF9MREZMQUdTX2lwaG9uZW9zID0gJChXS19BUFBTRVJW
RVJTVVBQT1JUX0xERkxBR1MkKFdLX0lPU18xNSkpOworV0tfQVBQU0VSVkVSU1VQUE9SVF9MREZM
QUdTX2lwaG9uZXNpbXVsYXRvciA9ICQoV0tfQVBQU0VSVkVSU1VQUE9SVF9MREZMQUdTJChXS19J
T1NfMTUpKTsKK1dLX0FQUFNFUlZFUlNVUFBPUlRfTERGTEFHU19JT1NfU0lOQ0VfMTUgPSAtZnJh
bWV3b3JrIEFwcFNlcnZlclN1cHBvcnQKKworT1RIRVJfTERGTEFHUyA9IC1mcmFtZXdvcmsgRm91
bmRhdGlvbiAtZnJhbWV3b3JrIENvcmVGb3VuZGF0aW9uIC1mcmFtZXdvcmsgV2ViS2l0IC1mcmFt
ZXdvcmsgSmF2YVNjcmlwdENvcmUgJChXS19BUFBTRVJWRVJTVVBQT1JUX0xERkxBR1MpCiBMSUJS
QVJZX1NFQVJDSF9QQVRIUyA9ICQoQlVJTFRfUFJPRFVDVFNfRElSKTsKIAogQ09ERV9TSUdOX0VO
VElUTEVNRU5UUyA9IFJlc291cmNlcy93ZWJwdXNodG9vbC5lbnRpdGxlbWVudHM7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1Jlc291cmNlcy93ZWJwdXNodG9vbC5lbnRpdGxlbWVudHMgYi9T
b3VyY2UvV2ViS2l0L1Jlc291cmNlcy93ZWJwdXNodG9vbC5lbnRpdGxlbWVudHMKaW5kZXggNjMy
NGYwNWFkOTZhLi41OTU0OTczZTg3YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUmVzb3Vy
Y2VzL3dlYnB1c2h0b29sLmVudGl0bGVtZW50cworKysgYi9Tb3VyY2UvV2ViS2l0L1Jlc291cmNl
cy93ZWJwdXNodG9vbC5lbnRpdGxlbWVudHMKQEAgLTYsNSArNiw3IEBACiAJPHRydWUvPgogCTxr
ZXk+Y29tLmFwcGxlLnByaXZhdGUud2Via2l0LndlYnB1c2guaW5qZWN0PC9rZXk+CiAJPHRydWUv
PgorCTxrZXk+Y29tLmFwcGxlLnByaXZhdGUueHBjLmxhdW5jaGQuam9iLW1hbmFnZXI8L2tleT4K
Kwk8c3RyaW5nPndlYnB1c2h0b29sPC9zdHJpbmc+CiA8L2RpY3Q+CiA8L3BsaXN0PgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvRGFlbW9uL0RhZW1vblV0aWxpdGllcy5tbSBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0RhZW1vbi9EYWVtb25VdGlsaXRpZXMubW0KaW5kZXggMmI0MGY5
M2E4YzVhLi5lMDhjMDRhZDgzZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Rh
ZW1vbi9EYWVtb25VdGlsaXRpZXMubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRGFlbW9u
L0RhZW1vblV0aWxpdGllcy5tbQpAQCAtNTQsNiArNTQsOSBAQCB2b2lkIHN0YXJ0TGlzdGVuaW5n
Rm9yTWFjaFNlcnZpY2VDb25uZWN0aW9ucyhjb25zdCBjaGFyKiBzZXJ2aWNlTmFtZSwgY29uc3Qg
Y2hhcgogI2Vsc2UKICAgICAgICAgICAgICAgICBOU0xvZyhAIkZhaWxlZCB0byBzdGFydCBsaXN0
ZW5pbmcgZm9yIGNvbm5lY3Rpb25zIHRvIG1hY2ggc2VydmljZSAlcywgbGlrZWx5IGJlY2F1c2Ug
aXQgaXMgbm90IHJlZ2lzdGVyZWQgd2l0aCBsYXVuY2hkIiwgc2VydmljZU5hbWUpOwogI2VuZGlm
CisgICAgICAgICAgICAgICAgTlNMb2coQCJSZW1vdmluZyBwZWVyIGNvbm5lY3Rpb24gJXAiLCBw
ZWVyKTsKKyAgICAgICAgICAgICAgICBjb25uZWN0aW9uUmVtb3ZlZChwZWVyKTsKKyAgICAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoZXZlbnQgPT0g
WFBDX0VSUk9SX0NPTk5FQ1RJT05fSU5URVJSVVBURUQpIHsKICAgICAgICAgICAgICAgICBOU0xv
ZyhAIlJlbW92aW5nIHBlZXIgY29ubmVjdGlvbiAlcCIsIHBlZXIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC93ZWJwdXNoZC9BcHBCdW5kbGVSZXF1ZXN0Lm1tIGIvU291cmNlL1dlYktpdC93
ZWJwdXNoZC9BcHBCdW5kbGVSZXF1ZXN0Lm1tCmluZGV4IDU3M2FkNGQ0ZTAzMy4uM2NkM2RiMDdm
NmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL0FwcEJ1bmRsZVJlcXVlc3Qu
bW0KKysrIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC9BcHBCdW5kbGVSZXF1ZXN0Lm1tCkBAIC01
Myw4ICs1MywxMCBAQCB2b2lkIEFwcEJ1bmRsZVJlcXVlc3Q6OnN0YXJ0KCkKIAogICAgIGlmICht
X2Nvbm5lY3Rpb24tPnVzZU1vY2tCdW5kbGVzRm9yVGVzdGluZygpKQogICAgICAgICBtX2FwcEJ1
bmRsZSA9IE1vY2tBcHBCdW5kbGVGb3JUZXN0aW5nOjpjcmVhdGUobV9vcmlnaW5TdHJpbmcsIG1f
Y29ubmVjdGlvbi0+aG9zdEFwcENvZGVTaWduaW5nSWRlbnRpZmllcigpLCAqdGhpcyk7Ci0gICAg
ZWxzZQorICAgIGVsc2UgeworICAgICAgICBtX2Nvbm5lY3Rpb24tPmJyb2FkY2FzdERlYnVnTWVz
c2FnZSgiQ2xpZW50IGlzIHRyeWluZyB0byBpbml0aWF0ZSBhcHAgYnVuZGxlIHJlcXVlc3Qgd2l0
aG91dCBoYXZpbmcgY29uZmlndXJlZCBtb2NrIGFwcCBidW5kbGVzIGZvciB0ZXN0aW5nLiBBYm91
dCB0byBjcmFzaC4uLiIpOwogICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgIH0KIAogICAgIHN0YXJ0SW50ZXJuYWwoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvd2VicHVzaGQvUHVzaENsaWVudENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvd2VicHVz
aGQvUHVzaENsaWVudENvbm5lY3Rpb24uaAppbmRleCA3ZmE0M2ZkOWUwOWYuLjllY2VhMTJiZjI1
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93ZWJwdXNoZC9QdXNoQ2xpZW50Q29ubmVjdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvUHVzaENsaWVudENvbm5lY3Rpb24uaApA
QCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHd0Zi9EZXF1
ZS5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL0lkZW50aWZpZWQu
aD4KICNpbmNsdWRlIDx3dGYvT1NPYmplY3RQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CkBAIC00NSw3ICs0Niw3IEBAIG5hbWVzcGFj
ZSBXZWJQdXNoRCB7CiAKIGNsYXNzIEFwcEJ1bmRsZVJlcXVlc3Q7CiAKLWNsYXNzIENsaWVudENv
bm5lY3Rpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxDbGllbnRDb25uZWN0aW9uPiwgcHVibGljIENh
bk1ha2VXZWFrUHRyPENsaWVudENvbm5lY3Rpb24+IHsKK2NsYXNzIENsaWVudENvbm5lY3Rpb24g
OiBwdWJsaWMgUmVmQ291bnRlZDxDbGllbnRDb25uZWN0aW9uPiwgcHVibGljIENhbk1ha2VXZWFr
UHRyPENsaWVudENvbm5lY3Rpb24+LCBwdWJsaWMgSWRlbnRpZmllZDxDbGllbnRDb25uZWN0aW9u
PiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJl
ZjxDbGllbnRDb25uZWN0aW9uPiBjcmVhdGUoeHBjX2Nvbm5lY3Rpb25fdCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1B1c2hDbGllbnRDb25uZWN0aW9uLm1tIGIvU291cmNl
L1dlYktpdC93ZWJwdXNoZC9QdXNoQ2xpZW50Q29ubmVjdGlvbi5tbQppbmRleCBmODllZjI4MjNi
YTMuLjAyMmY4YWRlNWUwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93ZWJwdXNoZC9QdXNo
Q2xpZW50Q29ubmVjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1B1c2hDbGll
bnRDb25uZWN0aW9uLm1tCkBAIC03Myw2ICs3Myw3IEBAIHZvaWQgQ2xpZW50Q29ubmVjdGlvbjo6
c2V0SG9zdEFwcEF1ZGl0VG9rZW5EYXRhKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgdG9rZW5EYXRh
CiAgICAgfQogCiAgICAgbV9ob3N0QXBwQXVkaXRUb2tlbiA9IFdURk1vdmUodG9rZW4pOworICAg
IERhZW1vbjo6c2luZ2xldG9uKCkuYnJvYWRjYXN0QWxsQ29ubmVjdGlvbklkZW50aXRpZXMoKTsK
IH0KIAogY29uc3QgU3RyaW5nJiBDbGllbnRDb25uZWN0aW9uOjpob3N0QXBwQ29kZVNpZ25pbmdJ
ZGVudGlmaWVyKCkKQEAgLTEyMSw5ICsxMjIsOSBAQCB2b2lkIENsaWVudENvbm5lY3Rpb246OmJy
b2FkY2FzdERlYnVnTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAgICAgU3RyaW5nIG1l
c3NhZ2VJZGVudGlmaWVyOwogICAgIGF1dG8gc2lnbmluZ0lkZW50aWZlciA9IGhvc3RBcHBDb2Rl
U2lnbmluZ0lkZW50aWZpZXIoKTsKICAgICBpZiAoc2lnbmluZ0lkZW50aWZlci5pc0VtcHR5KCkp
Ci0gICAgICAgIG1lc3NhZ2VJZGVudGlmaWVyID0gbWFrZVN0cmluZygiWygweCIsIGhleChyZWlu
dGVycHJldF9jYXN0PHVpbnQ2NF90PihtX3hwY0Nvbm5lY3Rpb24uZ2V0KCkpLCBXVEY6OkhleENv
bnZlcnNpb25Nb2RlOjpMb3dlcmNhc2UpLCAiKV0gIik7CisgICAgICAgIG1lc3NhZ2VJZGVudGlm
aWVyID0gbWFrZVN0cmluZygiWygweCIsIGhleChyZWludGVycHJldF9jYXN0PHVpbnQ2NF90Piht
X3hwY0Nvbm5lY3Rpb24uZ2V0KCkpLCBXVEY6OkhleENvbnZlcnNpb25Nb2RlOjpMb3dlcmNhc2Up
LCAiKSAoIiwgU3RyaW5nOjpudW1iZXIoaWRlbnRpZmllcigpKSwgIiApXSAiKTsKICAgICBlbHNl
Ci0gICAgICAgIG1lc3NhZ2VJZGVudGlmaWVyID0gbWFrZVN0cmluZygiWyIsIHNpZ25pbmdJZGVu
dGlmZXIsICIgKDB4IiwgaGV4KHJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3Q+KG1feHBjQ29ubmVj
dGlvbi5nZXQoKSksIFdURjo6SGV4Q29udmVyc2lvbk1vZGU6Okxvd2VyY2FzZSksICIpXSAiKTsK
KyAgICAgICAgbWVzc2FnZUlkZW50aWZpZXIgPSBtYWtlU3RyaW5nKCJbIiwgc2lnbmluZ0lkZW50
aWZlciwgIiAoIiwgU3RyaW5nOjpudW1iZXIoaWRlbnRpZmllcigpKSwgIildICIpOwogCiAgICAg
RGFlbW9uOjpzaW5nbGV0b24oKS5icm9hZGNhc3REZWJ1Z01lc3NhZ2UoSlNDOjpNZXNzYWdlTGV2
ZWw6OkluZm8sIG1ha2VTdHJpbmcobWVzc2FnZUlkZW50aWZpZXIsIG1lc3NhZ2UpKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvV2ViUHVzaERhZW1vbi5oIGIvU291cmNl
L1dlYktpdC93ZWJwdXNoZC9XZWJQdXNoRGFlbW9uLmgKaW5kZXggYzAyNGIyMGVmNGNmLi5jYWQ0
ODMwNzA1MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvV2ViUHVzaERhZW1v
bi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvV2ViUHVzaERhZW1vbi5oCkBAIC03MCw2
ICs3MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGdldFBlbmRpbmdQdXNoTWVzc2FnZXMoQ2xpZW50
Q29ubmVjdGlvbiosIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPFdlYktpdDo6
V2ViUHVzaE1lc3NhZ2U+Jik+JiYgcmVwbHlTZW5kZXIpOwogCiAgICAgdm9pZCBicm9hZGNhc3RE
ZWJ1Z01lc3NhZ2UoSlNDOjpNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQg
YnJvYWRjYXN0QWxsQ29ubmVjdGlvbklkZW50aXRpZXMoKTsKIAogcHJpdmF0ZToKICAgICBEYWVt
b24oKSA9IGRlZmF1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1dlYlB1
c2hEYWVtb24ubW0gYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1dlYlB1c2hEYWVtb24ubW0KaW5k
ZXggNjg4OTg1NWUzMGQ1Li5kOWI2ZWZmYzNkYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
d2VicHVzaGQvV2ViUHVzaERhZW1vbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1dl
YlB1c2hEYWVtb24ubW0KQEAgLTE4NSw2ICsxODUsMTQgQEAgdm9pZCBEYWVtb246OmJyb2FkY2Fz
dERlYnVnTWVzc2FnZShKU0M6Ok1lc3NhZ2VMZXZlbCBtZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmlu
ZyYKICAgICB9CiB9CiAKK3ZvaWQgRGFlbW9uOjpicm9hZGNhc3RBbGxDb25uZWN0aW9uSWRlbnRp
dGllcygpCit7CisgICAgYnJvYWRjYXN0RGVidWdNZXNzYWdlKChKU0M6Ok1lc3NhZ2VMZXZlbCk0
LCAiPT09XG5DdXJyZW50IGNvbm5lY3Rpb25zOiIpOworICAgIGZvciAoYXV0byYgaXRlcmF0b3Ig
OiBtX2Nvbm5lY3Rpb25NYXApCisgICAgICAgIGl0ZXJhdG9yLnZhbHVlLT5icm9hZGNhc3REZWJ1
Z01lc3NhZ2UoIiIpOworICAgIGJyb2FkY2FzdERlYnVnTWVzc2FnZSgoSlNDOjpNZXNzYWdlTGV2
ZWwpNCwgIj09PSIpOworfQorCiB2b2lkIERhZW1vbjo6Y29ubmVjdGlvbkV2ZW50SGFuZGxlcih4
cGNfb2JqZWN0X3QgcmVxdWVzdCkKIHsKICAgICBpZiAoeHBjX2dldF90eXBlKHJlcXVlc3QpICE9
IFhQQ19UWVBFX0RJQ1RJT05BUlkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hk
L3dlYnB1c2h0b29sL1dlYlB1c2hUb29sQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC93ZWJw
dXNoZC93ZWJwdXNodG9vbC9XZWJQdXNoVG9vbENvbm5lY3Rpb24uaAppbmRleCBiZTJmMTc5OTFj
NDcuLmEzZTMyMzNiZTU2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93ZWJwdXNoZC93ZWJw
dXNodG9vbC9XZWJQdXNoVG9vbENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dlYnB1
c2hkL3dlYnB1c2h0b29sL1dlYlB1c2hUb29sQ29ubmVjdGlvbi5oCkBAIC01MCwxMyArNTAsMTgg
QEAgZW51bSBjbGFzcyBSZWNvbm5lY3QgOiBib29sIHsKICAgICBObywKIH07CiAKK2VudW0gY2xh
c3MgV2FpdEZvclNlcnZpY2VUb0V4aXN0IDogYm9vbCB7CisgICAgWWVzLAorICAgIE5vLAorfTsK
KwogY2xhc3MgQ29ubmVjdGlvbiA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxDb25uZWN0aW9uPiB7
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgc3RhdGljIHN0ZDo6
dW5pcXVlX3B0cjxDb25uZWN0aW9uPiBjcmVhdGUoQWN0aW9uLCBQcmVmZXJUZXN0U2VydmljZSwg
UmVjb25uZWN0KTsKICAgICBDb25uZWN0aW9uKEFjdGlvbiwgUHJlZmVyVGVzdFNlcnZpY2UsIFJl
Y29ubmVjdCk7CiAKLSAgICB2b2lkIGNvbm5lY3RUb1NlcnZpY2UoKTsKKyAgICB2b2lkIGNvbm5l
Y3RUb1NlcnZpY2UoV2FpdEZvclNlcnZpY2VUb0V4aXN0KTsKIAogICAgIHZvaWQgc2V0UHVzaE1l
c3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPFB1c2hNZXNzYWdlRm9yVGVzdGluZz4mJiBtZXNzYWdlKSB7
IG1fcHVzaE1lc3NhZ2UgPSBXVEZNb3ZlKG1lc3NhZ2UpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvd2VicHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRvb2xDb25uZWN0aW9uLm1tIGIv
U291cmNlL1dlYktpdC93ZWJwdXNoZC93ZWJwdXNodG9vbC9XZWJQdXNoVG9vbENvbm5lY3Rpb24u
bW0KaW5kZXggYTQzMzRkNjQ2Mzc3Li5jMzM0YWY2NGE5YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvd2VicHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRvb2xDb25uZWN0aW9uLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRvb2xDb25uZWN0aW9u
Lm1tCkBAIC02Niw3ICs2Niw3IEBAIENvbm5lY3Rpb246OkNvbm5lY3Rpb24oQWN0aW9uIGFjdGlv
biwgUHJlZmVyVGVzdFNlcnZpY2UgcHJlZmVyVGVzdFNlcnZpY2UsIFJlY29uCiAgICAgICAgIG1f
c2VydmljZU5hbWUgPSAiY29tLmFwcGxlLndlYmtpdC53ZWJwdXNoZC5zZXJ2aWNlIjsKIH0KIAot
dm9pZCBDb25uZWN0aW9uOjpjb25uZWN0VG9TZXJ2aWNlKCkKK3ZvaWQgQ29ubmVjdGlvbjo6Y29u
bmVjdFRvU2VydmljZShXYWl0Rm9yU2VydmljZVRvRXhpc3Qgd2FpdEZvclNlcnZpY2VUb0V4aXN0
KQogewogICAgIGlmIChtX2Nvbm5lY3Rpb24pCiAgICAgICAgIHJldHVybjsKQEAgLTk5LDEzICs5
OSwxNSBAQCB2b2lkIENvbm5lY3Rpb246OmNvbm5lY3RUb1NlcnZpY2UoKQogICAgICAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0pOwogCi0gICAgYXV0byByZXN1bHQgPSBt
YXliZUNvbm5lY3RUb1NlcnZpY2UobV9zZXJ2aWNlTmFtZSk7Ci0gICAgaWYgKHJlc3VsdCA9PSBN
QUNIX1BPUlRfTlVMTCkKLSAgICAgICAgcHJpbnRmKCJXYWl0aW5nIGZvciBzZXJ2aWNlICclcycg
dG8gYmUgYXZhaWxhYmxlXG4iLCBtX3NlcnZpY2VOYW1lKTsKKyAgICBpZiAod2FpdEZvclNlcnZp
Y2VUb0V4aXN0ID09IFdhaXRGb3JTZXJ2aWNlVG9FeGlzdDo6WWVzKSB7CisgICAgICAgIGF1dG8g
cmVzdWx0ID0gbWF5YmVDb25uZWN0VG9TZXJ2aWNlKG1fc2VydmljZU5hbWUpOworICAgICAgICBp
ZiAocmVzdWx0ID09IE1BQ0hfUE9SVF9OVUxMKQorICAgICAgICAgICAgcHJpbnRmKCJXYWl0aW5n
IGZvciBzZXJ2aWNlICclcycgdG8gYmUgYXZhaWxhYmxlXG4iLCBtX3NlcnZpY2VOYW1lKTsKIAot
ICAgIHdoaWxlIChyZXN1bHQgPT0gTUFDSF9QT1JUX05VTEwpIHsKLSAgICAgICAgdXNsZWVwKDEw
MDApOwotICAgICAgICByZXN1bHQgPSBtYXliZUNvbm5lY3RUb1NlcnZpY2UobV9zZXJ2aWNlTmFt
ZSk7CisgICAgICAgIHdoaWxlIChyZXN1bHQgPT0gTUFDSF9QT1JUX05VTEwpIHsKKyAgICAgICAg
ICAgIHVzbGVlcCgxMDAwKTsKKyAgICAgICAgICAgIHJlc3VsdCA9IG1heWJlQ29ubmVjdFRvU2Vy
dmljZShtX3NlcnZpY2VOYW1lKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIHhwY19jb25uZWN0
aW9uX2FjdGl2YXRlKG1fY29ubmVjdGlvbi5nZXQoKSk7CkBAIC0xODQsNyArMTg2LDcgQEAgdm9p
ZCBDb25uZWN0aW9uOjpjb25uZWN0aW9uRHJvcHBlZCgpCiAgICAgaWYgKG1fcmVjb25uZWN0KSB7
CiAgICAgICAgIGNhbGxPbk1haW5SdW5Mb29wKFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyB0
aGlzIH1dIHsKICAgICAgICAgICAgIGlmICh3ZWFrVGhpcykKLSAgICAgICAgICAgICAgICBjb25u
ZWN0VG9TZXJ2aWNlKCk7CisgICAgICAgICAgICAgICAgY29ubmVjdFRvU2VydmljZShXYWl0Rm9y
U2VydmljZVRvRXhpc3Q6Olllcyk7CiAgICAgICAgIH0pOwogICAgICAgICByZXR1cm47CiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93ZWJwdXNoZC93ZWJwdXNodG9vbC9XZWJQdXNo
VG9vbE1haW4ubW0gYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL3dlYnB1c2h0b29sL1dlYlB1c2hU
b29sTWFpbi5tbQppbmRleCBhNTg3OTU5OGRhNGYuLjNiYjQwNDQwNmRiMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC93ZWJwdXNoZC93ZWJwdXNodG9vbC9XZWJQdXNoVG9vbE1haW4ubW0KKysr
IGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC93ZWJwdXNodG9vbC9XZWJQdXNoVG9vbE1haW4ubW0K
QEAgLTQzLDYgKzQzLDkgQEAgc3RhdGljIHZvaWQgcHJpbnRVc2FnZUFuZFRlcm1pbmF0ZShOU1N0
cmluZyAqbWVzc2FnZSkKICAgICBmcHJpbnRmKHN0ZGVyciwgIiAgICBDb25uZWN0cyB0byBtYWNo
IHNlcnZpY2UgXCJvcmcud2Via2l0LndlYnB1c2h0ZXN0ZGFlbW9uLnNlcnZpY2VcIiAoRGVmYXVs
dClcbiIpOwogICAgIGZwcmludGYoc3RkZXJyLCAiICAtLXByb2R1Y3Rpb25cbiIpOwogICAgIGZw
cmludGYoc3RkZXJyLCAiICAgIENvbm5lY3RzIHRvIG1hY2ggc2VydmljZSBcImNvbS5hcHBsZS53
ZWJraXQud2VicHVzaGQuc2VydmljZVwiXG4iKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiAgLS1o
b3N0XG4iKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiAgICBEeW5hbWljYWxseSByZWdpc3RlcnMg
dGhlIHNlcnZpY2Ugd2l0aCBsYXVuY2hkIHNvIGl0IGlzIHZpc2libGUgdG8gb3RoZXIgYXBwbGlj
YXRpb25zXG4iKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiAgICBUaGUgc2VydmljZSBuYW1lIG9m
IHRoZSByZWdpc3RyYXRpb24gZGVwZW5kcyBvbiBlaXRoZXIgdGhlIC0tZGV2ZWxvcG1lbnQgb3Ig
LS1wcm9kdWN0aW9uIG9wdGlvbiBjaG9zZW5cbiIpOwogICAgIGZwcmludGYoc3RkZXJyLCAiICAt
LXN0cmVhbURlYnVnTWVzc2FnZXNcbiIpOwogICAgIGZwcmludGYoc3RkZXJyLCAiICAgIFN0cmVh
bSBkZWJ1ZyBtZXNzYWdlcyBmcm9tIHdlYnB1c2hkXG4iKTsKICAgICBmcHJpbnRmKHN0ZGVyciwg
IiAgLS1yZWNvbm5lY3RcbiIpOwpAQCAtNzYsMTIgKzc5LDY4IEBAIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8UHVzaE1lc3NhZ2VGb3JUZXN0aW5nPiBwdXNoTWVzc2FnZUZyb21Bcmd1bWVudHMoTlNF
bnVtZXJhCiAgICAgcmV0dXJuIG1ha2VVbmlxdWVXaXRob3V0RmFzdE1hbGxvY0NoZWNrPFB1c2hN
ZXNzYWdlRm9yVGVzdGluZz4oV1RGTW92ZShwdXNoTWVzc2FnZSkpOwogfQogCitzdGF0aWMgYm9v
bCByZWdpc3RlckRhZW1vbldpdGhMYXVuY2hEKFdlYlB1c2hUb29sOjpQcmVmZXJUZXN0U2Vydmlj
ZSBwcmVmZXJUZXN0U2VydmljZSkKK3sKKyAgICAvLyBGb3Igbm93IHdlYnB1c2h0b29sIG9ubHkg
a25vd3MgaG93IHRvIGhvc3Qgd2VicHVzaGQgd2hlbiB0aGV5J3JlIGluIHRoZSBzYW1lIGRpcmVj
dG9yeQorICAgIC8vIGUuZy4gdGhlIGJ1aWxkIGRpcmVjdG9yeSBvZiBhIFdlYktpdCBjb250cmli
dXRvci4KKyAgICBOU1N0cmluZyAqY3VycmVudEV4ZWN1dGFibGVQYXRoID0gW1tOU0J1bmRsZSBt
YWluQnVuZGxlXSBleGVjdXRhYmxlUGF0aF07CisgICAgTlNVUkwgKmN1cnJlbnRFeGVjdXRhYmxl
RGlyZWN0b3J5VVJMID0gW1tOU1VSTCBmaWxlVVJMV2l0aFBhdGg6Y3VycmVudEV4ZWN1dGFibGVQ
YXRoIGlzRGlyZWN0b3J5Ok5PXSBVUkxCeURlbGV0aW5nTGFzdFBhdGhDb21wb25lbnRdOworICAg
IE5TVVJMICpkYWVtb25FeGVjdXRhYmxlUGF0aFVSTCA9IFtjdXJyZW50RXhlY3V0YWJsZURpcmVj
dG9yeVVSTCBVUkxCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJ3ZWJwdXNoZCJdOworCisgICAg
aWYgKCFbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6ZGFl
bW9uRXhlY3V0YWJsZVBhdGhVUkwucGF0aF0pIHsKKyAgICAgICAgTlNMb2coQCJEYWVtb24gZXhl
Y3V0YWJsZSBkb2VzIG5vdCBleGlzdCBhdCBwYXRoICVAIiwgZGFlbW9uRXhlY3V0YWJsZVBhdGhV
UkwucGF0aCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBjb25zdCBjaGFy
KiBzZXJ2aWNlTmFtZSA9IChwcmVmZXJUZXN0U2VydmljZSA9PSBXZWJQdXNoVG9vbDo6UHJlZmVy
VGVzdFNlcnZpY2U6OlllcykgPyAib3JnLndlYmtpdC53ZWJwdXNodGVzdGRhZW1vbi5zZXJ2aWNl
IiA6ICJjb20uYXBwbGUud2Via2l0LndlYnB1c2hkLnNlcnZpY2UiOworCisgICAgYXV0byBwbGlz
dCA9IGFkb3B0TlMoeHBjX2RpY3Rpb25hcnlfY3JlYXRlKG51bGxwdHIsIG51bGxwdHIsIDApKTsK
KyAgICB4cGNfZGljdGlvbmFyeV9zZXRfc3RyaW5nKHBsaXN0LmdldCgpLCAiX01hbmFnZWRCeSIs
ICJ3ZWJwdXNodG9vbCIpOworICAgIHhwY19kaWN0aW9uYXJ5X3NldF9zdHJpbmcocGxpc3QuZ2V0
KCksICJMYWJlbCIsICJvcmcud2Via2l0LndlYnB1c2h0ZXN0ZGFlbW9uIik7CisgICAgeHBjX2Rp
Y3Rpb25hcnlfc2V0X2Jvb2wocGxpc3QuZ2V0KCksICJMYXVuY2hPbmx5T25jZSIsIHRydWUpOwor
ICAgIHhwY19kaWN0aW9uYXJ5X3NldF9ib29sKHBsaXN0LmdldCgpLCAiUm9vdGVkU2ltdWxhdG9y
UGF0aCIsIHRydWUpOworCisgICAgeworICAgICAgICBhdXRvIGVudmlyb25tZW50VmFyaWFibGVz
ID0gYWRvcHROUyh4cGNfZGljdGlvbmFyeV9jcmVhdGUobnVsbHB0ciwgbnVsbHB0ciwgMCkpOwor
ICAgICAgICB4cGNfZGljdGlvbmFyeV9zZXRfc3RyaW5nKGVudmlyb25tZW50VmFyaWFibGVzLmdl
dCgpLCAiRFlMRF9GUkFNRVdPUktfUEFUSCIsIGN1cnJlbnRFeGVjdXRhYmxlRGlyZWN0b3J5VVJM
LmZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbik7CisgICAgICAgIHhwY19kaWN0aW9uYXJ5X3NldF92
YWx1ZShwbGlzdC5nZXQoKSwgIkVudmlyb25tZW50VmFyaWFibGVzIiwgZW52aXJvbm1lbnRWYXJp
YWJsZXMuZ2V0KCkpOworICAgIH0KKyAgICB7CisgICAgICAgIGF1dG8gbWFjaFNlcnZpY2VzID0g
YWRvcHROUyh4cGNfZGljdGlvbmFyeV9jcmVhdGUobnVsbHB0ciwgbnVsbHB0ciwgMCkpOworICAg
ICAgICB4cGNfZGljdGlvbmFyeV9zZXRfYm9vbChtYWNoU2VydmljZXMuZ2V0KCksIHNlcnZpY2VO
YW1lLCB0cnVlKTsKKyAgICAgICAgeHBjX2RpY3Rpb25hcnlfc2V0X3ZhbHVlKHBsaXN0LmdldCgp
LCAiTWFjaFNlcnZpY2VzIiwgbWFjaFNlcnZpY2VzLmdldCgpKTsKKyAgICB9CisgICAgeworICAg
ICAgICBhdXRvIHByb2dyYW1Bcmd1bWVudHMgPSBhZG9wdE5TKHhwY19hcnJheV9jcmVhdGUobnVs
bHB0ciwgMCkpOworI2lmIFBMQVRGT1JNKE1BQykKKyAgICAgICAgeHBjX2FycmF5X3NldF9zdHJp
bmcocHJvZ3JhbUFyZ3VtZW50cy5nZXQoKSwgWFBDX0FSUkFZX0FQUEVORCwgZGFlbW9uRXhlY3V0
YWJsZVBhdGhVUkwuZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKTsKKyNlbHNlCisgICAgICAgIHhw
Y19hcnJheV9zZXRfc3RyaW5nKHByb2dyYW1Bcmd1bWVudHMuZ2V0KCksIFhQQ19BUlJBWV9BUFBF
TkQsIGRhZW1vbkV4ZWN1dGFibGVQYXRoVVJMLnBhdGguZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9u
KTsKKyNlbmRpZgorICAgICAgICB4cGNfYXJyYXlfc2V0X3N0cmluZyhwcm9ncmFtQXJndW1lbnRz
LmdldCgpLCBYUENfQVJSQVlfQVBQRU5ELCAiLS1tYWNoU2VydmljZU5hbWUiKTsKKyAgICAgICAg
eHBjX2FycmF5X3NldF9zdHJpbmcocHJvZ3JhbUFyZ3VtZW50cy5nZXQoKSwgWFBDX0FSUkFZX0FQ
UEVORCwgc2VydmljZU5hbWUpOworICAgICAgICB4cGNfZGljdGlvbmFyeV9zZXRfdmFsdWUocGxp
c3QuZ2V0KCksICJQcm9ncmFtQXJndW1lbnRzIiwgcHJvZ3JhbUFyZ3VtZW50cy5nZXQoKSk7Cisg
ICAgfQorCisgICAgYXV0byBqb2IgPSBhZG9wdE5TKFtbT1NMYXVuY2hkSm9iIGFsbG9jXSBpbml0
V2l0aFBsaXN0OnBsaXN0LmdldCgpXSk7CisgICAgTlNFcnJvciAqZXJyb3IgPSBuaWw7CisgICAg
W2pvYiBzdWJtaXQ6JmVycm9yXTsKKworICAgIGlmIChlcnJvcikgeworICAgICAgICBOU0xvZyhA
IkVycm9yIHNldHRpbmcgdXAgc2VydmljZTogJUAiLCBlcnJvcik7CisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogaW50IG1haW4oaW50LCBjb25z
dCBjaGFyICoqKQogewogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWQoKTsKIAogICAgIGF1
dG8gcHJlZmVyVGVzdFNlcnZpY2UgPSBXZWJQdXNoVG9vbDo6UHJlZmVyVGVzdFNlcnZpY2U6Olll
czsKICAgICBhdXRvIHJlY29ubmVjdCA9IFdlYlB1c2hUb29sOjpSZWNvbm5lY3Q6Ok5vOworICAg
IGJvb2wgaG9zdCA9IGZhbHNlOwogICAgIHN0ZDo6b3B0aW9uYWw8V2ViUHVzaFRvb2w6OkFjdGlv
bj4gYWN0aW9uOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxQdXNoTWVzc2FnZUZvclRlc3Rpbmc+IHB1
c2hNZXNzYWdlOwogCkBAIC0xMDEsNiArMTYwLDggQEAgaW50IG1haW4oaW50LCBjb25zdCBjaGFy
ICoqKQogICAgICAgICAgICAgICAgIGFjdGlvbiA9IFdlYlB1c2hUb29sOjpBY3Rpb246OlN0cmVh
bURlYnVnTWVzc2FnZXM7CiAgICAgICAgICAgICBlbHNlIGlmIChbYXJndW1lbnQgaXNFcXVhbFRv
U3RyaW5nOkAiLS1yZWNvbm5lY3QiXSkKICAgICAgICAgICAgICAgICByZWNvbm5lY3QgPSBXZWJQ
dXNoVG9vbDo6UmVjb25uZWN0OjpZZXM7CisgICAgICAgICAgICBlbHNlIGlmIChbYXJndW1lbnQg
aXNFcXVhbFRvU3RyaW5nOkAiLS1ob3N0Il0pCisgICAgICAgICAgICAgICAgaG9zdCA9IHRydWU7
CiAgICAgICAgICAgICBlbHNlIGlmIChbYXJndW1lbnQgaXNFcXVhbFRvU3RyaW5nOkAiLS1wdXNo
Il0pIHsKICAgICAgICAgICAgICAgICBwdXNoTWVzc2FnZSA9IHB1c2hNZXNzYWdlRnJvbUFyZ3Vt
ZW50cyhlbnVtZXJhdG9yKTsKICAgICAgICAgICAgICAgICBpZiAoIXB1c2hNZXNzYWdlKQpAQCAt
MTE1LDExICsxNzYsMTQgQEAgaW50IG1haW4oaW50LCBjb25zdCBjaGFyICoqKQogICAgIGlmICgh
YWN0aW9uICYmICFwdXNoTWVzc2FnZSkKICAgICAgICAgcHJpbnRVc2FnZUFuZFRlcm1pbmF0ZShA
Ik5vIGFjdGlvbiBwcm92aWRlZCIpOwogCisgICAgaWYgKGhvc3QgJiYgIXJlZ2lzdGVyRGFlbW9u
V2l0aExhdW5jaEQocHJlZmVyVGVzdFNlcnZpY2UpKQorICAgICAgICBwcmludFVzYWdlQW5kVGVy
bWluYXRlKEAiVW5hYmxlIHRvIGluc3RhbGwgcGxpc3QgdG8gaG9zdCB0aGUgc2VydmljZSIpOwor
CiAgICAgYXV0byBjb25uZWN0aW9uID0gV2ViUHVzaFRvb2w6OkNvbm5lY3Rpb246OmNyZWF0ZSgq
YWN0aW9uLCBwcmVmZXJUZXN0U2VydmljZSwgcmVjb25uZWN0KTsKICAgICBpZiAocHVzaE1lc3Nh
Z2UpCiAgICAgICAgIGNvbm5lY3Rpb24tPnNldFB1c2hNZXNzYWdlKFdURk1vdmUocHVzaE1lc3Nh
Z2UpKTsKIAotICAgIGNvbm5lY3Rpb24tPmNvbm5lY3RUb1NlcnZpY2UoKTsKKyAgICBjb25uZWN0
aW9uLT5jb25uZWN0VG9TZXJ2aWNlKGhvc3QgPyBXZWJQdXNoVG9vbDo6V2FpdEZvclNlcnZpY2VU
b0V4aXN0OjpObyA6IFdlYlB1c2hUb29sOjpXYWl0Rm9yU2VydmljZVRvRXhpc3Q6Olllcyk7CiAK
ICAgICBDRlJ1bkxvb3BSdW4oKTsKICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhMGZiOWQ1M2ZjN2MuLjhhODM4YTg5NTFl
NyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE2IEBACisyMDIxLTEyLTEzICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNv
bT4KKworICAgICAgICBUZWFjaCB3ZWJwdXNodG9vbCB0byByZWdpc3RlciBhbmQgImhvc3QiIHRo
ZSBkYWVtb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzQyNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2ViUHVzaERhZW1vbi5tbToKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OnNob3VsZFNldHVwV2ViUHVzaEQpOiBBZGQgYSBjb21tYW5k
IGxpbmUgYXJndW1lbnQgdG8gc2tpcCB0aGUgImluc3RhbGwgdGhlIGRhZW1vbiIgc3RlcCwKKyAg
ICAgICAgICBzbyBhbiBlbmdpbmVlciBjYW4gaGFuZGxlIHRoYXQgcGFydCB0aGVtc2VsdmVzLgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6c2V0VXBUZXN0V2ViUHVzaEQpOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6Y2xlYW5VcFRlc3RXZWJQdXNoRCk6CisKIDIwMjEtMTItMTAgIENvbW1pdCBR
dWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJl
dmVydGluZyByMjg2ODM2LgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9XZWJQdXNoRGFlbW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9XZWJQdXNoRGFlbW9uLm1tCmluZGV4IGQ2NmU0NDBiNjNkNi4uYTAxZmI2MDkw
YzgyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dl
YlB1c2hEYWVtb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9XZWJQdXNoRGFlbW9uLm1tCkBAIC0xMjUsOCArMTI1LDI0IEBAIHN0YXRpYyBSZXRhaW5QdHI8
TlNEaWN0aW9uYXJ5PiB0ZXN0V2ViUHVzaERhZW1vblBMaXN0KE5TVVJMICpzdG9yYWdlTG9jYXRp
b24pCiAKICNlbmRpZiAvLyBIQVZFKE9TX0xBVU5DSERfSk9CKQogCitzdGF0aWMgYm9vbCBzaG91
bGRTZXR1cFdlYlB1c2hEKCkKK3sKKyAgICBzdGF0aWMgYm9vbCBzaG91bGRTZXR1cCA9IHRydWU7
CisgICAgc3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNlVG9rZW47CisgICAgZGlzcGF0Y2hfb25j
ZSgmb25jZVRva2VuLCBeeworICAgICAgICBOU0FycmF5PE5TU3RyaW5nICo+ICphcmd1bWVudHMg
PSBbW05TUHJvY2Vzc0luZm8gcHJvY2Vzc0luZm9dIGFyZ3VtZW50c107CisgICAgICAgIGlmIChb
YXJndW1lbnRzIGNvbnRhaW5zT2JqZWN0OkAiLS1uby13ZWJwdXNoZCJdKQorICAgICAgICAgICAg
c2hvdWxkU2V0dXAgPSBmYWxzZTsKKyAgICB9KTsKKworICAgIHJldHVybiBzaG91bGRTZXR1cDsK
K30KKwogc3RhdGljIE5TVVJMICpzZXRVcFRlc3RXZWJQdXNoRCgpCiB7CisgICAgaWYgKCFzaG91
bGRTZXR1cFdlYlB1c2hEKCkpCisgICAgICAgIHJldHVybiBuaWw7CisKICAgICBOU0ZpbGVNYW5h
Z2VyICpmaWxlTWFuYWdlciA9IFtOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXTsKICAgICBO
U1VSTCAqdGVtcERpciA9IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6W05TVGVtcG9yYXJ5RGlyZWN0
b3J5KCkgc3RyaW5nQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiV2ViUHVzaERhZW1vblRlc3Qi
XSBpc0RpcmVjdG9yeTpZRVNdOwogICAgIE5TRXJyb3IgKmVycm9yID0gbmlsOwpAQCAtMTQ4LDYg
KzE2NCw5IEBAIHN0YXRpYyBOU1VSTCAqc2V0VXBUZXN0V2ViUHVzaEQoKQogCiBzdGF0aWMgdm9p
ZCBjbGVhblVwVGVzdFdlYlB1c2hEKE5TVVJMICp0ZW1wRGlyKQogeworICAgIGlmICghc2hvdWxk
U2V0dXBXZWJQdXNoRCgpKQorICAgICAgICByZXR1cm47CisKICAgICBraWxsRmlyc3RJbnN0YW5j
ZU9mRGFlbW9uKEAid2VicHVzaGQiKTsKIAogICAgIGlmICghW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1
bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRoOnRlbXBEaXIucGF0aF0pCkBAIC0yNDIsNyArMjYx
LDcgQEAgc3RhdGljIFZlY3Rvcjx1aW50OF90PiBlbmNvZGVTdHJpbmcoY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKQogfQogCiAvLyBGSVhNRTogUmUtZW5hYmxlIHRoaXMgdGVzdCBvbiBNYWMgb25jZSB3
ZWJraXQub3JnLzIzMjg1NyBpcyByZXNvbHZlZC4KLSNpZiBQTEFURk9STShNQUMpCisjaWYgUExB
VEZPUk0oTUFDKSAmJiAhVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIFRFU1QoV2ViUHVzaEQsIERJ
U0FCTEVEX0Jhc2ljQ29tbXVuaWNhdGlvbikKICNlbHNlCiBURVNUKFdlYlB1c2hELCBCYXNpY0Nv
bW11bmljYXRpb24pCkBAIC0zMjEsNyArMzQwLDcgQEAgc3RhdGljIGNvbnN0IGNoYXIqIG1haW5C
eXRlcyA9IFIiV0VCUFVTSFJFU09VUkNFKAogKVdFQlBVU0hSRVNPVVJDRSI7CiAKIC8vIEZJWE1F
OiBSZS1lbmFibGUgdGhpcyB0ZXN0IG9uIE1hYyBvbmNlIHdlYmtpdC5vcmcvMjMyODU3IGlzIHJl
c29sdmVkLgotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBQTEFURk9STShNQUMpICYmICFVU0UoQVBQ
TEVfSU5URVJOQUxfU0RLKQogVEVTVChXZWJQdXNoRCwgRElTQUJMRURfUGVybWlzc2lvbk1hbmFn
ZW1lbnQpCiAjZWxzZQogVEVTVChXZWJQdXNoRCwgUGVybWlzc2lvbk1hbmFnZW1lbnQpCkBAIC00
NTQsNyArNDczLDcgQEAgc3RhdGljIHZvaWQgY2xlYXJXZWJzaXRlRGF0YVN0b3JlKFdLV2Vic2l0
ZURhdGFTdG9yZSAqc3RvcmUpCiB9CiAKIC8vIEZJWE1FOiBSZS1lbmFibGUgdGhpcyB0ZXN0IG9u
IE1hYyBvbmNlIHdlYmtpdC5vcmcvMjMyODU3IGlzIHJlc29sdmVkLgotI2lmIFBMQVRGT1JNKE1B
QykKKyNpZiBQTEFURk9STShNQUMpICYmICFVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogVEVTVChX
ZWJQdXNoRCwgRElTQUJMRURfSGFuZGxlSW5qZWN0ZWRQdXNoKQogI2Vsc2UKIFRFU1QoV2ViUHVz
aEQsIEhhbmRsZUluamVjdGVkUHVzaCkK
</data>
<flag name="commit-queue"
          id="472611"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447074</attachid>
            <date>2021-12-13 15:08:13 -0800</date>
            <delta_ts>2021-12-13 19:06:12 -0800</delta_ts>
            <desc>Patch v2</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>20311</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggYzNhODM4ZGExZjFlLi5jMDRhMWI0NzNmM2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNDUgQEAKKzIwMjEtMTItMTMgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgor
CisgICAgICAgIFRlYWNoIHdlYnB1c2h0b29sIHRvIHJlZ2lzdGVyIGFuZCAiaG9zdCIgdGhlIGRh
ZW1vbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
NDI2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENv
dmVyZWQgYnkgQVBJIHRlc3RzIHZlcmlmeWluZyBob3N0aW5nIG1vZGUgb3BlcmF0aW9uLgorCisg
ICAgICAgIEFzIHZhcmlvdXMgZW5naW5lZXJzIHdvcmsgb24gdmFyaW91cyBwYXJ0cyBvZiB0aGUg
cHJvamVjdCwgaXQncyBiZWNvbWUgYXBwYXJlbnQgdGhhdCBpdCdzIHN1cGVyIHVzZWZ1bAorICAg
ICAgICB0byBoYXZlIGEgdG9vbCBoYW5kbGUgdGhlICJzZXR0aW5nIHVwIiBvZiB0aGUgZGFlbW9u
IGl0c2VsZiwgdG8gYXZvaWQgbGF1bmNoY3RsLCBldGMuCisgICAgICAgIAorICAgICAgICBJbXBs
ZW1lbnQgdGhhdCwgYXMgd2VsbCBhcyBhIGZldyBvdGhlciBuaWNldGllcyBmb3VuZCB3aGlsZSB0
ZXN0aW5nLgorICAgICAgICAKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy93ZWJwdXNodG9vbC54
Y2NvbmZpZzoKKyAgICAgICAgKiBSZXNvdXJjZXMvd2VicHVzaHRvb2wuZW50aXRsZW1lbnRzOgor
ICAgICAgICAKKyAgICAgICAgKiBTaGFyZWQvRGFlbW9uL0RhZW1vblV0aWxpdGllcy5tbToKKyAg
ICAgICAgKFdlYktpdDo6c3RhcnRMaXN0ZW5pbmdGb3JNYWNoU2VydmljZUNvbm5lY3Rpb25zKToK
KyAgICAgICAgCisgICAgICAgICogd2VicHVzaGQvQXBwQnVuZGxlUmVxdWVzdC5tbToKKyAgICAg
ICAgKFdlYlB1c2hEOjpBcHBCdW5kbGVSZXF1ZXN0OjpzdGFydCk6CisgICAgICAgIAorICAgICAg
ICAqIHdlYnB1c2hkL1B1c2hDbGllbnRDb25uZWN0aW9uLmg6CisgICAgICAgICogd2VicHVzaGQv
UHVzaENsaWVudENvbm5lY3Rpb24ubW06CisgICAgICAgIChXZWJQdXNoRDo6Q2xpZW50Q29ubmVj
dGlvbjo6c2V0SG9zdEFwcEF1ZGl0VG9rZW5EYXRhKToKKyAgICAgICAgKFdlYlB1c2hEOjpDbGll
bnRDb25uZWN0aW9uOjpicm9hZGNhc3REZWJ1Z01lc3NhZ2UpOgorCisgICAgICAgICogd2VicHVz
aGQvV2ViUHVzaERhZW1vbi5oOgorICAgICAgICAqIHdlYnB1c2hkL1dlYlB1c2hEYWVtb24ubW06
CisgICAgICAgIChXZWJQdXNoRDo6RGFlbW9uOjpicm9hZGNhc3RBbGxDb25uZWN0aW9uSWRlbnRp
dGllcyk6CisKKyAgICAgICAgKiB3ZWJwdXNoZC93ZWJwdXNodG9vbC9XZWJQdXNoVG9vbENvbm5l
Y3Rpb24uaDoKKyAgICAgICAgKiB3ZWJwdXNoZC93ZWJwdXNodG9vbC9XZWJQdXNoVG9vbENvbm5l
Y3Rpb24ubW06CisgICAgICAgIChXZWJQdXNoVG9vbDo6Q29ubmVjdGlvbjo6Y29ubmVjdFRvU2Vy
dmljZSk6CisgICAgICAgIChXZWJQdXNoVG9vbDo6Q29ubmVjdGlvbjo6Y29ubmVjdGlvbkRyb3Bw
ZWQpOgorCisgICAgICAgICogd2VicHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRvb2xNYWluLm1t
OgorICAgICAgICAocHJpbnRVc2FnZUFuZFRlcm1pbmF0ZSk6CisgICAgICAgIChyZWdpc3RlckRh
ZW1vbldpdGhMYXVuY2hEKToKKyAgICAgICAgKG1haW4pOgorCiAyMDIxLTEyLTEwICBCcmFkeSBF
aWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBUZWFjaCB3ZWJwdXNoZCB0byBs
YXVuY2ggYW4gYXBwIGluIHJlc3BvbnNlIHRvIGFuIGluamVjdGVkIG1lc3NhZ2UuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL3dlYnB1c2h0b29sLnhjY29uZmlnIGIv
U291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy93ZWJwdXNodG9vbC54Y2NvbmZpZwppbmRleCBk
NTQyOTU5YjRhZGMuLjliN2I4NThmODdjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Db25m
aWd1cmF0aW9ucy93ZWJwdXNodG9vbC54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZp
Z3VyYXRpb25zL3dlYnB1c2h0b29sLnhjY29uZmlnCkBAIC0yOSw3ICsyOSwxNCBAQCBTS0lQX0lO
U1RBTEwgPSBZRVM7CiBFWENMVURFRF9TT1VSQ0VfRklMRV9OQU1FU1tzZGs9YXBwbGV0dipdID0g
KjsKIEVYQ0xVREVEX1NPVVJDRV9GSUxFX05BTUVTW3Nkaz13YXRjaCpdID0gKjsKIAotT1RIRVJf
TERGTEFHUyA9IC1mcmFtZXdvcmsgRm91bmRhdGlvbiAtZnJhbWV3b3JrIENvcmVGb3VuZGF0aW9u
IC1mcmFtZXdvcmsgV2ViS2l0IC1mcmFtZXdvcmsgSmF2YVNjcmlwdENvcmUKK1dLX0FQUFNFUlZF
UlNVUFBPUlRfTERGTEFHUyA9ICQoV0tfQVBQU0VSVkVSU1VQUE9SVF9MREZMQUdTXyQoV0tfUExB
VEZPUk1fTkFNRSkpOworV0tfQVBQU0VSVkVSU1VQUE9SVF9MREZMQUdTX21hY29zeCA9ICQoV0tf
QVBQU0VSVkVSU1VQUE9SVF9MREZMQUdTJChXS19NQUNPU18xMjAwKSk7CitXS19BUFBTRVJWRVJT
VVBQT1JUX0xERkxBR1NfTUFDT1NfU0lOQ0VfMTIwMCA9IC1mcmFtZXdvcmsgQXBwU2VydmVyU3Vw
cG9ydAorV0tfQVBQU0VSVkVSU1VQUE9SVF9MREZMQUdTX2lwaG9uZW9zID0gJChXS19BUFBTRVJW
RVJTVVBQT1JUX0xERkxBR1MkKFdLX0lPU18xNSkpOworV0tfQVBQU0VSVkVSU1VQUE9SVF9MREZM
QUdTX2lwaG9uZXNpbXVsYXRvciA9ICQoV0tfQVBQU0VSVkVSU1VQUE9SVF9MREZMQUdTJChXS19J
T1NfMTUpKTsKK1dLX0FQUFNFUlZFUlNVUFBPUlRfTERGTEFHU19JT1NfU0lOQ0VfMTUgPSAtZnJh
bWV3b3JrIEFwcFNlcnZlclN1cHBvcnQKKworT1RIRVJfTERGTEFHUyA9IC1mcmFtZXdvcmsgRm91
bmRhdGlvbiAtZnJhbWV3b3JrIENvcmVGb3VuZGF0aW9uIC1mcmFtZXdvcmsgV2ViS2l0IC1mcmFt
ZXdvcmsgSmF2YVNjcmlwdENvcmUgJChXS19BUFBTRVJWRVJTVVBQT1JUX0xERkxBR1MpCiBMSUJS
QVJZX1NFQVJDSF9QQVRIUyA9ICQoQlVJTFRfUFJPRFVDVFNfRElSKTsKIAogQ09ERV9TSUdOX0VO
VElUTEVNRU5UUyA9IFJlc291cmNlcy93ZWJwdXNodG9vbC5lbnRpdGxlbWVudHM7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1Jlc291cmNlcy93ZWJwdXNodG9vbC5lbnRpdGxlbWVudHMgYi9T
b3VyY2UvV2ViS2l0L1Jlc291cmNlcy93ZWJwdXNodG9vbC5lbnRpdGxlbWVudHMKaW5kZXggNjMy
NGYwNWFkOTZhLi41OTU0OTczZTg3YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUmVzb3Vy
Y2VzL3dlYnB1c2h0b29sLmVudGl0bGVtZW50cworKysgYi9Tb3VyY2UvV2ViS2l0L1Jlc291cmNl
cy93ZWJwdXNodG9vbC5lbnRpdGxlbWVudHMKQEAgLTYsNSArNiw3IEBACiAJPHRydWUvPgogCTxr
ZXk+Y29tLmFwcGxlLnByaXZhdGUud2Via2l0LndlYnB1c2guaW5qZWN0PC9rZXk+CiAJPHRydWUv
PgorCTxrZXk+Y29tLmFwcGxlLnByaXZhdGUueHBjLmxhdW5jaGQuam9iLW1hbmFnZXI8L2tleT4K
Kwk8c3RyaW5nPndlYnB1c2h0b29sPC9zdHJpbmc+CiA8L2RpY3Q+CiA8L3BsaXN0PgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvRGFlbW9uL0RhZW1vblV0aWxpdGllcy5tbSBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0RhZW1vbi9EYWVtb25VdGlsaXRpZXMubW0KaW5kZXggMmI0MGY5
M2E4YzVhLi5lMDhjMDRhZDgzZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Rh
ZW1vbi9EYWVtb25VdGlsaXRpZXMubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRGFlbW9u
L0RhZW1vblV0aWxpdGllcy5tbQpAQCAtNTQsNiArNTQsOSBAQCB2b2lkIHN0YXJ0TGlzdGVuaW5n
Rm9yTWFjaFNlcnZpY2VDb25uZWN0aW9ucyhjb25zdCBjaGFyKiBzZXJ2aWNlTmFtZSwgY29uc3Qg
Y2hhcgogI2Vsc2UKICAgICAgICAgICAgICAgICBOU0xvZyhAIkZhaWxlZCB0byBzdGFydCBsaXN0
ZW5pbmcgZm9yIGNvbm5lY3Rpb25zIHRvIG1hY2ggc2VydmljZSAlcywgbGlrZWx5IGJlY2F1c2Ug
aXQgaXMgbm90IHJlZ2lzdGVyZWQgd2l0aCBsYXVuY2hkIiwgc2VydmljZU5hbWUpOwogI2VuZGlm
CisgICAgICAgICAgICAgICAgTlNMb2coQCJSZW1vdmluZyBwZWVyIGNvbm5lY3Rpb24gJXAiLCBw
ZWVyKTsKKyAgICAgICAgICAgICAgICBjb25uZWN0aW9uUmVtb3ZlZChwZWVyKTsKKyAgICAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoZXZlbnQgPT0g
WFBDX0VSUk9SX0NPTk5FQ1RJT05fSU5URVJSVVBURUQpIHsKICAgICAgICAgICAgICAgICBOU0xv
ZyhAIlJlbW92aW5nIHBlZXIgY29ubmVjdGlvbiAlcCIsIHBlZXIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC93ZWJwdXNoZC9BcHBCdW5kbGVSZXF1ZXN0Lm1tIGIvU291cmNlL1dlYktpdC93
ZWJwdXNoZC9BcHBCdW5kbGVSZXF1ZXN0Lm1tCmluZGV4IDU3M2FkNGQ0ZTAzMy4uM2NkM2RiMDdm
NmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL0FwcEJ1bmRsZVJlcXVlc3Qu
bW0KKysrIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC9BcHBCdW5kbGVSZXF1ZXN0Lm1tCkBAIC01
Myw4ICs1MywxMCBAQCB2b2lkIEFwcEJ1bmRsZVJlcXVlc3Q6OnN0YXJ0KCkKIAogICAgIGlmICht
X2Nvbm5lY3Rpb24tPnVzZU1vY2tCdW5kbGVzRm9yVGVzdGluZygpKQogICAgICAgICBtX2FwcEJ1
bmRsZSA9IE1vY2tBcHBCdW5kbGVGb3JUZXN0aW5nOjpjcmVhdGUobV9vcmlnaW5TdHJpbmcsIG1f
Y29ubmVjdGlvbi0+aG9zdEFwcENvZGVTaWduaW5nSWRlbnRpZmllcigpLCAqdGhpcyk7Ci0gICAg
ZWxzZQorICAgIGVsc2UgeworICAgICAgICBtX2Nvbm5lY3Rpb24tPmJyb2FkY2FzdERlYnVnTWVz
c2FnZSgiQ2xpZW50IGlzIHRyeWluZyB0byBpbml0aWF0ZSBhcHAgYnVuZGxlIHJlcXVlc3Qgd2l0
aG91dCBoYXZpbmcgY29uZmlndXJlZCBtb2NrIGFwcCBidW5kbGVzIGZvciB0ZXN0aW5nLiBBYm91
dCB0byBjcmFzaC4uLiIpOwogICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgIH0KIAogICAgIHN0YXJ0SW50ZXJuYWwoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvd2VicHVzaGQvUHVzaENsaWVudENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvd2VicHVz
aGQvUHVzaENsaWVudENvbm5lY3Rpb24uaAppbmRleCA3ZmE0M2ZkOWUwOWYuLjllY2VhMTJiZjI1
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93ZWJwdXNoZC9QdXNoQ2xpZW50Q29ubmVjdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvUHVzaENsaWVudENvbm5lY3Rpb24uaApA
QCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHd0Zi9EZXF1
ZS5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL0lkZW50aWZpZWQu
aD4KICNpbmNsdWRlIDx3dGYvT1NPYmplY3RQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CkBAIC00NSw3ICs0Niw3IEBAIG5hbWVzcGFj
ZSBXZWJQdXNoRCB7CiAKIGNsYXNzIEFwcEJ1bmRsZVJlcXVlc3Q7CiAKLWNsYXNzIENsaWVudENv
bm5lY3Rpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxDbGllbnRDb25uZWN0aW9uPiwgcHVibGljIENh
bk1ha2VXZWFrUHRyPENsaWVudENvbm5lY3Rpb24+IHsKK2NsYXNzIENsaWVudENvbm5lY3Rpb24g
OiBwdWJsaWMgUmVmQ291bnRlZDxDbGllbnRDb25uZWN0aW9uPiwgcHVibGljIENhbk1ha2VXZWFr
UHRyPENsaWVudENvbm5lY3Rpb24+LCBwdWJsaWMgSWRlbnRpZmllZDxDbGllbnRDb25uZWN0aW9u
PiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJl
ZjxDbGllbnRDb25uZWN0aW9uPiBjcmVhdGUoeHBjX2Nvbm5lY3Rpb25fdCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1B1c2hDbGllbnRDb25uZWN0aW9uLm1tIGIvU291cmNl
L1dlYktpdC93ZWJwdXNoZC9QdXNoQ2xpZW50Q29ubmVjdGlvbi5tbQppbmRleCBmODllZjI4MjNi
YTMuLjAyMmY4YWRlNWUwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93ZWJwdXNoZC9QdXNo
Q2xpZW50Q29ubmVjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1B1c2hDbGll
bnRDb25uZWN0aW9uLm1tCkBAIC03Myw2ICs3Myw3IEBAIHZvaWQgQ2xpZW50Q29ubmVjdGlvbjo6
c2V0SG9zdEFwcEF1ZGl0VG9rZW5EYXRhKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgdG9rZW5EYXRh
CiAgICAgfQogCiAgICAgbV9ob3N0QXBwQXVkaXRUb2tlbiA9IFdURk1vdmUodG9rZW4pOworICAg
IERhZW1vbjo6c2luZ2xldG9uKCkuYnJvYWRjYXN0QWxsQ29ubmVjdGlvbklkZW50aXRpZXMoKTsK
IH0KIAogY29uc3QgU3RyaW5nJiBDbGllbnRDb25uZWN0aW9uOjpob3N0QXBwQ29kZVNpZ25pbmdJ
ZGVudGlmaWVyKCkKQEAgLTEyMSw5ICsxMjIsOSBAQCB2b2lkIENsaWVudENvbm5lY3Rpb246OmJy
b2FkY2FzdERlYnVnTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAgICAgU3RyaW5nIG1l
c3NhZ2VJZGVudGlmaWVyOwogICAgIGF1dG8gc2lnbmluZ0lkZW50aWZlciA9IGhvc3RBcHBDb2Rl
U2lnbmluZ0lkZW50aWZpZXIoKTsKICAgICBpZiAoc2lnbmluZ0lkZW50aWZlci5pc0VtcHR5KCkp
Ci0gICAgICAgIG1lc3NhZ2VJZGVudGlmaWVyID0gbWFrZVN0cmluZygiWygweCIsIGhleChyZWlu
dGVycHJldF9jYXN0PHVpbnQ2NF90PihtX3hwY0Nvbm5lY3Rpb24uZ2V0KCkpLCBXVEY6OkhleENv
bnZlcnNpb25Nb2RlOjpMb3dlcmNhc2UpLCAiKV0gIik7CisgICAgICAgIG1lc3NhZ2VJZGVudGlm
aWVyID0gbWFrZVN0cmluZygiWygweCIsIGhleChyZWludGVycHJldF9jYXN0PHVpbnQ2NF90Piht
X3hwY0Nvbm5lY3Rpb24uZ2V0KCkpLCBXVEY6OkhleENvbnZlcnNpb25Nb2RlOjpMb3dlcmNhc2Up
LCAiKSAoIiwgU3RyaW5nOjpudW1iZXIoaWRlbnRpZmllcigpKSwgIiApXSAiKTsKICAgICBlbHNl
Ci0gICAgICAgIG1lc3NhZ2VJZGVudGlmaWVyID0gbWFrZVN0cmluZygiWyIsIHNpZ25pbmdJZGVu
dGlmZXIsICIgKDB4IiwgaGV4KHJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3Q+KG1feHBjQ29ubmVj
dGlvbi5nZXQoKSksIFdURjo6SGV4Q29udmVyc2lvbk1vZGU6Okxvd2VyY2FzZSksICIpXSAiKTsK
KyAgICAgICAgbWVzc2FnZUlkZW50aWZpZXIgPSBtYWtlU3RyaW5nKCJbIiwgc2lnbmluZ0lkZW50
aWZlciwgIiAoIiwgU3RyaW5nOjpudW1iZXIoaWRlbnRpZmllcigpKSwgIildICIpOwogCiAgICAg
RGFlbW9uOjpzaW5nbGV0b24oKS5icm9hZGNhc3REZWJ1Z01lc3NhZ2UoSlNDOjpNZXNzYWdlTGV2
ZWw6OkluZm8sIG1ha2VTdHJpbmcobWVzc2FnZUlkZW50aWZpZXIsIG1lc3NhZ2UpKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvV2ViUHVzaERhZW1vbi5oIGIvU291cmNl
L1dlYktpdC93ZWJwdXNoZC9XZWJQdXNoRGFlbW9uLmgKaW5kZXggYzAyNGIyMGVmNGNmLi5jYWQ0
ODMwNzA1MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvV2ViUHVzaERhZW1v
bi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvV2ViUHVzaERhZW1vbi5oCkBAIC03MCw2
ICs3MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGdldFBlbmRpbmdQdXNoTWVzc2FnZXMoQ2xpZW50
Q29ubmVjdGlvbiosIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPFdlYktpdDo6
V2ViUHVzaE1lc3NhZ2U+Jik+JiYgcmVwbHlTZW5kZXIpOwogCiAgICAgdm9pZCBicm9hZGNhc3RE
ZWJ1Z01lc3NhZ2UoSlNDOjpNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQg
YnJvYWRjYXN0QWxsQ29ubmVjdGlvbklkZW50aXRpZXMoKTsKIAogcHJpdmF0ZToKICAgICBEYWVt
b24oKSA9IGRlZmF1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1dlYlB1
c2hEYWVtb24ubW0gYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1dlYlB1c2hEYWVtb24ubW0KaW5k
ZXggNjg4OTg1NWUzMGQ1Li5kOWI2ZWZmYzNkYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
d2VicHVzaGQvV2ViUHVzaERhZW1vbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1dl
YlB1c2hEYWVtb24ubW0KQEAgLTE4NSw2ICsxODUsMTQgQEAgdm9pZCBEYWVtb246OmJyb2FkY2Fz
dERlYnVnTWVzc2FnZShKU0M6Ok1lc3NhZ2VMZXZlbCBtZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmlu
ZyYKICAgICB9CiB9CiAKK3ZvaWQgRGFlbW9uOjpicm9hZGNhc3RBbGxDb25uZWN0aW9uSWRlbnRp
dGllcygpCit7CisgICAgYnJvYWRjYXN0RGVidWdNZXNzYWdlKChKU0M6Ok1lc3NhZ2VMZXZlbCk0
LCAiPT09XG5DdXJyZW50IGNvbm5lY3Rpb25zOiIpOworICAgIGZvciAoYXV0byYgaXRlcmF0b3Ig
OiBtX2Nvbm5lY3Rpb25NYXApCisgICAgICAgIGl0ZXJhdG9yLnZhbHVlLT5icm9hZGNhc3REZWJ1
Z01lc3NhZ2UoIiIpOworICAgIGJyb2FkY2FzdERlYnVnTWVzc2FnZSgoSlNDOjpNZXNzYWdlTGV2
ZWwpNCwgIj09PSIpOworfQorCiB2b2lkIERhZW1vbjo6Y29ubmVjdGlvbkV2ZW50SGFuZGxlcih4
cGNfb2JqZWN0X3QgcmVxdWVzdCkKIHsKICAgICBpZiAoeHBjX2dldF90eXBlKHJlcXVlc3QpICE9
IFhQQ19UWVBFX0RJQ1RJT05BUlkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hk
L3dlYnB1c2h0b29sL1dlYlB1c2hUb29sQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC93ZWJw
dXNoZC93ZWJwdXNodG9vbC9XZWJQdXNoVG9vbENvbm5lY3Rpb24uaAppbmRleCBiZTJmMTc5OTFj
NDcuLmEzZTMyMzNiZTU2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93ZWJwdXNoZC93ZWJw
dXNodG9vbC9XZWJQdXNoVG9vbENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dlYnB1
c2hkL3dlYnB1c2h0b29sL1dlYlB1c2hUb29sQ29ubmVjdGlvbi5oCkBAIC01MCwxMyArNTAsMTgg
QEAgZW51bSBjbGFzcyBSZWNvbm5lY3QgOiBib29sIHsKICAgICBObywKIH07CiAKK2VudW0gY2xh
c3MgV2FpdEZvclNlcnZpY2VUb0V4aXN0IDogYm9vbCB7CisgICAgWWVzLAorICAgIE5vLAorfTsK
KwogY2xhc3MgQ29ubmVjdGlvbiA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxDb25uZWN0aW9uPiB7
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgc3RhdGljIHN0ZDo6
dW5pcXVlX3B0cjxDb25uZWN0aW9uPiBjcmVhdGUoQWN0aW9uLCBQcmVmZXJUZXN0U2VydmljZSwg
UmVjb25uZWN0KTsKICAgICBDb25uZWN0aW9uKEFjdGlvbiwgUHJlZmVyVGVzdFNlcnZpY2UsIFJl
Y29ubmVjdCk7CiAKLSAgICB2b2lkIGNvbm5lY3RUb1NlcnZpY2UoKTsKKyAgICB2b2lkIGNvbm5l
Y3RUb1NlcnZpY2UoV2FpdEZvclNlcnZpY2VUb0V4aXN0KTsKIAogICAgIHZvaWQgc2V0UHVzaE1l
c3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPFB1c2hNZXNzYWdlRm9yVGVzdGluZz4mJiBtZXNzYWdlKSB7
IG1fcHVzaE1lc3NhZ2UgPSBXVEZNb3ZlKG1lc3NhZ2UpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvd2VicHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRvb2xDb25uZWN0aW9uLm1tIGIv
U291cmNlL1dlYktpdC93ZWJwdXNoZC93ZWJwdXNodG9vbC9XZWJQdXNoVG9vbENvbm5lY3Rpb24u
bW0KaW5kZXggYTQzMzRkNjQ2Mzc3Li5jMzM0YWY2NGE5YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvd2VicHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRvb2xDb25uZWN0aW9uLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvd2VicHVzaHRvb2wvV2ViUHVzaFRvb2xDb25uZWN0aW9u
Lm1tCkBAIC02Niw3ICs2Niw3IEBAIENvbm5lY3Rpb246OkNvbm5lY3Rpb24oQWN0aW9uIGFjdGlv
biwgUHJlZmVyVGVzdFNlcnZpY2UgcHJlZmVyVGVzdFNlcnZpY2UsIFJlY29uCiAgICAgICAgIG1f
c2VydmljZU5hbWUgPSAiY29tLmFwcGxlLndlYmtpdC53ZWJwdXNoZC5zZXJ2aWNlIjsKIH0KIAot
dm9pZCBDb25uZWN0aW9uOjpjb25uZWN0VG9TZXJ2aWNlKCkKK3ZvaWQgQ29ubmVjdGlvbjo6Y29u
bmVjdFRvU2VydmljZShXYWl0Rm9yU2VydmljZVRvRXhpc3Qgd2FpdEZvclNlcnZpY2VUb0V4aXN0
KQogewogICAgIGlmIChtX2Nvbm5lY3Rpb24pCiAgICAgICAgIHJldHVybjsKQEAgLTk5LDEzICs5
OSwxNSBAQCB2b2lkIENvbm5lY3Rpb246OmNvbm5lY3RUb1NlcnZpY2UoKQogICAgICAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0pOwogCi0gICAgYXV0byByZXN1bHQgPSBt
YXliZUNvbm5lY3RUb1NlcnZpY2UobV9zZXJ2aWNlTmFtZSk7Ci0gICAgaWYgKHJlc3VsdCA9PSBN
QUNIX1BPUlRfTlVMTCkKLSAgICAgICAgcHJpbnRmKCJXYWl0aW5nIGZvciBzZXJ2aWNlICclcycg
dG8gYmUgYXZhaWxhYmxlXG4iLCBtX3NlcnZpY2VOYW1lKTsKKyAgICBpZiAod2FpdEZvclNlcnZp
Y2VUb0V4aXN0ID09IFdhaXRGb3JTZXJ2aWNlVG9FeGlzdDo6WWVzKSB7CisgICAgICAgIGF1dG8g
cmVzdWx0ID0gbWF5YmVDb25uZWN0VG9TZXJ2aWNlKG1fc2VydmljZU5hbWUpOworICAgICAgICBp
ZiAocmVzdWx0ID09IE1BQ0hfUE9SVF9OVUxMKQorICAgICAgICAgICAgcHJpbnRmKCJXYWl0aW5n
IGZvciBzZXJ2aWNlICclcycgdG8gYmUgYXZhaWxhYmxlXG4iLCBtX3NlcnZpY2VOYW1lKTsKIAot
ICAgIHdoaWxlIChyZXN1bHQgPT0gTUFDSF9QT1JUX05VTEwpIHsKLSAgICAgICAgdXNsZWVwKDEw
MDApOwotICAgICAgICByZXN1bHQgPSBtYXliZUNvbm5lY3RUb1NlcnZpY2UobV9zZXJ2aWNlTmFt
ZSk7CisgICAgICAgIHdoaWxlIChyZXN1bHQgPT0gTUFDSF9QT1JUX05VTEwpIHsKKyAgICAgICAg
ICAgIHVzbGVlcCgxMDAwKTsKKyAgICAgICAgICAgIHJlc3VsdCA9IG1heWJlQ29ubmVjdFRvU2Vy
dmljZShtX3NlcnZpY2VOYW1lKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIHhwY19jb25uZWN0
aW9uX2FjdGl2YXRlKG1fY29ubmVjdGlvbi5nZXQoKSk7CkBAIC0xODQsNyArMTg2LDcgQEAgdm9p
ZCBDb25uZWN0aW9uOjpjb25uZWN0aW9uRHJvcHBlZCgpCiAgICAgaWYgKG1fcmVjb25uZWN0KSB7
CiAgICAgICAgIGNhbGxPbk1haW5SdW5Mb29wKFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyB0
aGlzIH1dIHsKICAgICAgICAgICAgIGlmICh3ZWFrVGhpcykKLSAgICAgICAgICAgICAgICBjb25u
ZWN0VG9TZXJ2aWNlKCk7CisgICAgICAgICAgICAgICAgY29ubmVjdFRvU2VydmljZShXYWl0Rm9y
U2VydmljZVRvRXhpc3Q6Olllcyk7CiAgICAgICAgIH0pOwogICAgICAgICByZXR1cm47CiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93ZWJwdXNoZC93ZWJwdXNodG9vbC9XZWJQdXNo
VG9vbE1haW4ubW0gYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL3dlYnB1c2h0b29sL1dlYlB1c2hU
b29sTWFpbi5tbQppbmRleCBhNTg3OTU5OGRhNGYuLmY4NmYwZmU4NzFjOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC93ZWJwdXNoZC93ZWJwdXNodG9vbC9XZWJQdXNoVG9vbE1haW4ubW0KKysr
IGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC93ZWJwdXNodG9vbC9XZWJQdXNoVG9vbE1haW4ubW0K
QEAgLTQzLDYgKzQzLDExIEBAIHN0YXRpYyB2b2lkIHByaW50VXNhZ2VBbmRUZXJtaW5hdGUoTlNT
dHJpbmcgKm1lc3NhZ2UpCiAgICAgZnByaW50ZihzdGRlcnIsICIgICAgQ29ubmVjdHMgdG8gbWFj
aCBzZXJ2aWNlIFwib3JnLndlYmtpdC53ZWJwdXNodGVzdGRhZW1vbi5zZXJ2aWNlXCIgKERlZmF1
bHQpXG4iKTsKICAgICBmcHJpbnRmKHN0ZGVyciwgIiAgLS1wcm9kdWN0aW9uXG4iKTsKICAgICBm
cHJpbnRmKHN0ZGVyciwgIiAgICBDb25uZWN0cyB0byBtYWNoIHNlcnZpY2UgXCJjb20uYXBwbGUu
d2Via2l0LndlYnB1c2hkLnNlcnZpY2VcIlxuIik7CisjaWYgSEFWRShPU19MQVVOQ0hEX0pPQikK
KyAgICBmcHJpbnRmKHN0ZGVyciwgIiAgLS1ob3N0XG4iKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwg
IiAgICBEeW5hbWljYWxseSByZWdpc3RlcnMgdGhlIHNlcnZpY2Ugd2l0aCBsYXVuY2hkIHNvIGl0
IGlzIHZpc2libGUgdG8gb3RoZXIgYXBwbGljYXRpb25zXG4iKTsKKyAgICBmcHJpbnRmKHN0ZGVy
ciwgIiAgICBUaGUgc2VydmljZSBuYW1lIG9mIHRoZSByZWdpc3RyYXRpb24gZGVwZW5kcyBvbiBl
aXRoZXIgdGhlIC0tZGV2ZWxvcG1lbnQgb3IgLS1wcm9kdWN0aW9uIG9wdGlvbiBjaG9zZW5cbiIp
OworI2VuZGlmCiAgICAgZnByaW50ZihzdGRlcnIsICIgIC0tc3RyZWFtRGVidWdNZXNzYWdlc1xu
Iik7CiAgICAgZnByaW50ZihzdGRlcnIsICIgICAgU3RyZWFtIGRlYnVnIG1lc3NhZ2VzIGZyb20g
d2VicHVzaGRcbiIpOwogICAgIGZwcmludGYoc3RkZXJyLCAiICAtLXJlY29ubmVjdFxuIik7CkBA
IC03NiwxMiArODEsNzAgQEAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxQdXNoTWVzc2FnZUZvclRl
c3Rpbmc+IHB1c2hNZXNzYWdlRnJvbUFyZ3VtZW50cyhOU0VudW1lcmEKICAgICByZXR1cm4gbWFr
ZVVuaXF1ZVdpdGhvdXRGYXN0TWFsbG9jQ2hlY2s8UHVzaE1lc3NhZ2VGb3JUZXN0aW5nPihXVEZN
b3ZlKHB1c2hNZXNzYWdlKSk7CiB9CiAKKyNpZiBIQVZFKE9TX0xBVU5DSERfSk9CKQorc3RhdGlj
IGJvb2wgcmVnaXN0ZXJEYWVtb25XaXRoTGF1bmNoRChXZWJQdXNoVG9vbDo6UHJlZmVyVGVzdFNl
cnZpY2UgcHJlZmVyVGVzdFNlcnZpY2UpCit7CisgICAgLy8gRm9yIG5vdyB3ZWJwdXNodG9vbCBv
bmx5IGtub3dzIGhvdyB0byBob3N0IHdlYnB1c2hkIHdoZW4gdGhleSdyZSBpbiB0aGUgc2FtZSBk
aXJlY3RvcnkKKyAgICAvLyBlLmcuIHRoZSBidWlsZCBkaXJlY3Rvcnkgb2YgYSBXZWJLaXQgY29u
dHJpYnV0b3IuCisgICAgTlNTdHJpbmcgKmN1cnJlbnRFeGVjdXRhYmxlUGF0aCA9IFtbTlNCdW5k
bGUgbWFpbkJ1bmRsZV0gZXhlY3V0YWJsZVBhdGhdOworICAgIE5TVVJMICpjdXJyZW50RXhlY3V0
YWJsZURpcmVjdG9yeVVSTCA9IFtbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOmN1cnJlbnRFeGVjdXRh
YmxlUGF0aCBpc0RpcmVjdG9yeTpOT10gVVJMQnlEZWxldGluZ0xhc3RQYXRoQ29tcG9uZW50XTsK
KyAgICBOU1VSTCAqZGFlbW9uRXhlY3V0YWJsZVBhdGhVUkwgPSBbY3VycmVudEV4ZWN1dGFibGVE
aXJlY3RvcnlVUkwgVVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAid2VicHVzaGQiXTsKKwor
ICAgIGlmICghW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRo
OmRhZW1vbkV4ZWN1dGFibGVQYXRoVVJMLnBhdGhdKSB7CisgICAgICAgIE5TTG9nKEAiRGFlbW9u
IGV4ZWN1dGFibGUgZG9lcyBub3QgZXhpc3QgYXQgcGF0aCAlQCIsIGRhZW1vbkV4ZWN1dGFibGVQ
YXRoVVJMLnBhdGgpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgY29uc3Qg
Y2hhciogc2VydmljZU5hbWUgPSAocHJlZmVyVGVzdFNlcnZpY2UgPT0gV2ViUHVzaFRvb2w6OlBy
ZWZlclRlc3RTZXJ2aWNlOjpZZXMpID8gIm9yZy53ZWJraXQud2VicHVzaHRlc3RkYWVtb24uc2Vy
dmljZSIgOiAiY29tLmFwcGxlLndlYmtpdC53ZWJwdXNoZC5zZXJ2aWNlIjsKKworICAgIGF1dG8g
cGxpc3QgPSBhZG9wdE5TKHhwY19kaWN0aW9uYXJ5X2NyZWF0ZShudWxscHRyLCBudWxscHRyLCAw
KSk7CisgICAgeHBjX2RpY3Rpb25hcnlfc2V0X3N0cmluZyhwbGlzdC5nZXQoKSwgIl9NYW5hZ2Vk
QnkiLCAid2VicHVzaHRvb2wiKTsKKyAgICB4cGNfZGljdGlvbmFyeV9zZXRfc3RyaW5nKHBsaXN0
LmdldCgpLCAiTGFiZWwiLCAib3JnLndlYmtpdC53ZWJwdXNodGVzdGRhZW1vbiIpOworICAgIHhw
Y19kaWN0aW9uYXJ5X3NldF9ib29sKHBsaXN0LmdldCgpLCAiTGF1bmNoT25seU9uY2UiLCB0cnVl
KTsKKyAgICB4cGNfZGljdGlvbmFyeV9zZXRfYm9vbChwbGlzdC5nZXQoKSwgIlJvb3RlZFNpbXVs
YXRvclBhdGgiLCB0cnVlKTsKKworICAgIHsKKyAgICAgICAgYXV0byBlbnZpcm9ubWVudFZhcmlh
YmxlcyA9IGFkb3B0TlMoeHBjX2RpY3Rpb25hcnlfY3JlYXRlKG51bGxwdHIsIG51bGxwdHIsIDAp
KTsKKyAgICAgICAgeHBjX2RpY3Rpb25hcnlfc2V0X3N0cmluZyhlbnZpcm9ubWVudFZhcmlhYmxl
cy5nZXQoKSwgIkRZTERfRlJBTUVXT1JLX1BBVEgiLCBjdXJyZW50RXhlY3V0YWJsZURpcmVjdG9y
eVVSTC5maWxlU3lzdGVtUmVwcmVzZW50YXRpb24pOworICAgICAgICB4cGNfZGljdGlvbmFyeV9z
ZXRfdmFsdWUocGxpc3QuZ2V0KCksICJFbnZpcm9ubWVudFZhcmlhYmxlcyIsIGVudmlyb25tZW50
VmFyaWFibGVzLmdldCgpKTsKKyAgICB9CisgICAgeworICAgICAgICBhdXRvIG1hY2hTZXJ2aWNl
cyA9IGFkb3B0TlMoeHBjX2RpY3Rpb25hcnlfY3JlYXRlKG51bGxwdHIsIG51bGxwdHIsIDApKTsK
KyAgICAgICAgeHBjX2RpY3Rpb25hcnlfc2V0X2Jvb2wobWFjaFNlcnZpY2VzLmdldCgpLCBzZXJ2
aWNlTmFtZSwgdHJ1ZSk7CisgICAgICAgIHhwY19kaWN0aW9uYXJ5X3NldF92YWx1ZShwbGlzdC5n
ZXQoKSwgIk1hY2hTZXJ2aWNlcyIsIG1hY2hTZXJ2aWNlcy5nZXQoKSk7CisgICAgfQorICAgIHsK
KyAgICAgICAgYXV0byBwcm9ncmFtQXJndW1lbnRzID0gYWRvcHROUyh4cGNfYXJyYXlfY3JlYXRl
KG51bGxwdHIsIDApKTsKKyNpZiBQTEFURk9STShNQUMpCisgICAgICAgIHhwY19hcnJheV9zZXRf
c3RyaW5nKHByb2dyYW1Bcmd1bWVudHMuZ2V0KCksIFhQQ19BUlJBWV9BUFBFTkQsIGRhZW1vbkV4
ZWN1dGFibGVQYXRoVVJMLmZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbik7CisjZWxzZQorICAgICAg
ICB4cGNfYXJyYXlfc2V0X3N0cmluZyhwcm9ncmFtQXJndW1lbnRzLmdldCgpLCBYUENfQVJSQVlf
QVBQRU5ELCBkYWVtb25FeGVjdXRhYmxlUGF0aFVSTC5wYXRoLmZpbGVTeXN0ZW1SZXByZXNlbnRh
dGlvbik7CisjZW5kaWYKKyAgICAgICAgeHBjX2FycmF5X3NldF9zdHJpbmcocHJvZ3JhbUFyZ3Vt
ZW50cy5nZXQoKSwgWFBDX0FSUkFZX0FQUEVORCwgIi0tbWFjaFNlcnZpY2VOYW1lIik7CisgICAg
ICAgIHhwY19hcnJheV9zZXRfc3RyaW5nKHByb2dyYW1Bcmd1bWVudHMuZ2V0KCksIFhQQ19BUlJB
WV9BUFBFTkQsIHNlcnZpY2VOYW1lKTsKKyAgICAgICAgeHBjX2RpY3Rpb25hcnlfc2V0X3ZhbHVl
KHBsaXN0LmdldCgpLCAiUHJvZ3JhbUFyZ3VtZW50cyIsIHByb2dyYW1Bcmd1bWVudHMuZ2V0KCkp
OworICAgIH0KKworICAgIGF1dG8gam9iID0gYWRvcHROUyhbW09TTGF1bmNoZEpvYiBhbGxvY10g
aW5pdFdpdGhQbGlzdDpwbGlzdC5nZXQoKV0pOworICAgIE5TRXJyb3IgKmVycm9yID0gbmlsOwor
ICAgIFtqb2Igc3VibWl0OiZlcnJvcl07CisKKyAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgTlNM
b2coQCJFcnJvciBzZXR0aW5nIHVwIHNlcnZpY2U6ICVAIiwgZXJyb3IpOworICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisjZW5kaWYgLy8gI2lmIEhB
VkUoT1NfTEFVTkNIRF9KT0IpCisKIGludCBtYWluKGludCwgY29uc3QgY2hhciAqKikKIHsKICAg
ICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkKCk7CiAKICAgICBhdXRvIHByZWZlclRlc3RTZXJ2
aWNlID0gV2ViUHVzaFRvb2w6OlByZWZlclRlc3RTZXJ2aWNlOjpZZXM7CiAgICAgYXV0byByZWNv
bm5lY3QgPSBXZWJQdXNoVG9vbDo6UmVjb25uZWN0OjpObzsKKyAgICBib29sIGhvc3QgPSBmYWxz
ZTsKICAgICBzdGQ6Om9wdGlvbmFsPFdlYlB1c2hUb29sOjpBY3Rpb24+IGFjdGlvbjsKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8UHVzaE1lc3NhZ2VGb3JUZXN0aW5nPiBwdXNoTWVzc2FnZTsKIApAQCAt
MTAxLDYgKzE2NCwxMCBAQCBpbnQgbWFpbihpbnQsIGNvbnN0IGNoYXIgKiopCiAgICAgICAgICAg
ICAgICAgYWN0aW9uID0gV2ViUHVzaFRvb2w6OkFjdGlvbjo6U3RyZWFtRGVidWdNZXNzYWdlczsK
ICAgICAgICAgICAgIGVsc2UgaWYgKFthcmd1bWVudCBpc0VxdWFsVG9TdHJpbmc6QCItLXJlY29u
bmVjdCJdKQogICAgICAgICAgICAgICAgIHJlY29ubmVjdCA9IFdlYlB1c2hUb29sOjpSZWNvbm5l
Y3Q6OlllczsKKyNpZiBIQVZFKE9TX0xBVU5DSERfSk9CKQorICAgICAgICAgICAgZWxzZSBpZiAo
W2FyZ3VtZW50IGlzRXF1YWxUb1N0cmluZzpAIi0taG9zdCJdKQorICAgICAgICAgICAgICAgIGhv
c3QgPSB0cnVlOworI2VuZGlmCiAgICAgICAgICAgICBlbHNlIGlmIChbYXJndW1lbnQgaXNFcXVh
bFRvU3RyaW5nOkAiLS1wdXNoIl0pIHsKICAgICAgICAgICAgICAgICBwdXNoTWVzc2FnZSA9IHB1
c2hNZXNzYWdlRnJvbUFyZ3VtZW50cyhlbnVtZXJhdG9yKTsKICAgICAgICAgICAgICAgICBpZiAo
IXB1c2hNZXNzYWdlKQpAQCAtMTE1LDExICsxODIsMTYgQEAgaW50IG1haW4oaW50LCBjb25zdCBj
aGFyICoqKQogICAgIGlmICghYWN0aW9uICYmICFwdXNoTWVzc2FnZSkKICAgICAgICAgcHJpbnRV
c2FnZUFuZFRlcm1pbmF0ZShAIk5vIGFjdGlvbiBwcm92aWRlZCIpOwogCisjaWYgSEFWRShPU19M
QVVOQ0hEX0pPQikKKyAgICBpZiAoaG9zdCAmJiAhcmVnaXN0ZXJEYWVtb25XaXRoTGF1bmNoRChw
cmVmZXJUZXN0U2VydmljZSkpCisgICAgICAgIHByaW50VXNhZ2VBbmRUZXJtaW5hdGUoQCJVbmFi
bGUgdG8gaW5zdGFsbCBwbGlzdCB0byBob3N0IHRoZSBzZXJ2aWNlIik7CisjZW5kaWYKKwogICAg
IGF1dG8gY29ubmVjdGlvbiA9IFdlYlB1c2hUb29sOjpDb25uZWN0aW9uOjpjcmVhdGUoKmFjdGlv
biwgcHJlZmVyVGVzdFNlcnZpY2UsIHJlY29ubmVjdCk7CiAgICAgaWYgKHB1c2hNZXNzYWdlKQog
ICAgICAgICBjb25uZWN0aW9uLT5zZXRQdXNoTWVzc2FnZShXVEZNb3ZlKHB1c2hNZXNzYWdlKSk7
CiAKLSAgICBjb25uZWN0aW9uLT5jb25uZWN0VG9TZXJ2aWNlKCk7CisgICAgY29ubmVjdGlvbi0+
Y29ubmVjdFRvU2VydmljZShob3N0ID8gV2ViUHVzaFRvb2w6OldhaXRGb3JTZXJ2aWNlVG9FeGlz
dDo6Tm8gOiBXZWJQdXNoVG9vbDo6V2FpdEZvclNlcnZpY2VUb0V4aXN0OjpZZXMpOwogCiAgICAg
Q0ZSdW5Mb29wUnVuKCk7CiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTBmYjlkNTNmYzdjLi44YTgzOGE4OTUxZTcgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNiBAQAorMjAyMS0xMi0xMyAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgVGVhY2ggd2VicHVzaHRvb2wgdG8gcmVnaXN0ZXIgYW5kICJob3N0IiB0aGUgZGFl
bW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0
MjY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYlB1c2hEYWVtb24ubW06CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpzaG91bGRTZXR1cFdlYlB1c2hEKTogQWRkIGEgY29tbWFuZCBsaW5l
IGFyZ3VtZW50IHRvIHNraXAgdGhlICJpbnN0YWxsIHRoZSBkYWVtb24iIHN0ZXAsCisgICAgICAg
ICAgc28gYW4gZW5naW5lZXIgY2FuIGhhbmRsZSB0aGF0IHBhcnQgdGhlbXNlbHZlcy4KKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OnNldFVwVGVzdFdlYlB1c2hEKToKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OmNsZWFuVXBUZXN0V2ViUHVzaEQpOgorCiAyMDIxLTEyLTEwICBDb21taXQgUXVldWUg
IDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRp
bmcgcjI4NjgzNi4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvV2ViUHVzaERhZW1vbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvV2ViUHVzaERhZW1vbi5tbQppbmRleCBkNjZlNDQwYjYzZDYuLmEwMWZiNjA5MGM4MiAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJQdXNo
RGFlbW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vi
UHVzaERhZW1vbi5tbQpAQCAtMTI1LDggKzEyNSwyNCBAQCBzdGF0aWMgUmV0YWluUHRyPE5TRGlj
dGlvbmFyeT4gdGVzdFdlYlB1c2hEYWVtb25QTGlzdChOU1VSTCAqc3RvcmFnZUxvY2F0aW9uKQog
CiAjZW5kaWYgLy8gSEFWRShPU19MQVVOQ0hEX0pPQikKIAorc3RhdGljIGJvb2wgc2hvdWxkU2V0
dXBXZWJQdXNoRCgpCit7CisgICAgc3RhdGljIGJvb2wgc2hvdWxkU2V0dXAgPSB0cnVlOworICAg
IHN0YXRpYyBkaXNwYXRjaF9vbmNlX3Qgb25jZVRva2VuOworICAgIGRpc3BhdGNoX29uY2UoJm9u
Y2VUb2tlbiwgXnsKKyAgICAgICAgTlNBcnJheTxOU1N0cmluZyAqPiAqYXJndW1lbnRzID0gW1tO
U1Byb2Nlc3NJbmZvIHByb2Nlc3NJbmZvXSBhcmd1bWVudHNdOworICAgICAgICBpZiAoW2FyZ3Vt
ZW50cyBjb250YWluc09iamVjdDpAIi0tbm8td2VicHVzaGQiXSkKKyAgICAgICAgICAgIHNob3Vs
ZFNldHVwID0gZmFsc2U7CisgICAgfSk7CisKKyAgICByZXR1cm4gc2hvdWxkU2V0dXA7Cit9CisK
IHN0YXRpYyBOU1VSTCAqc2V0VXBUZXN0V2ViUHVzaEQoKQogeworICAgIGlmICghc2hvdWxkU2V0
dXBXZWJQdXNoRCgpKQorICAgICAgICByZXR1cm4gbmlsOworCiAgICAgTlNGaWxlTWFuYWdlciAq
ZmlsZU1hbmFnZXIgPSBbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl07CiAgICAgTlNVUkwg
KnRlbXBEaXIgPSBbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOltOU1RlbXBvcmFyeURpcmVjdG9yeSgp
IHN0cmluZ0J5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIldlYlB1c2hEYWVtb25UZXN0Il0gaXNE
aXJlY3Rvcnk6WUVTXTsKICAgICBOU0Vycm9yICplcnJvciA9IG5pbDsKQEAgLTE0OCw2ICsxNjQs
OSBAQCBzdGF0aWMgTlNVUkwgKnNldFVwVGVzdFdlYlB1c2hEKCkKIAogc3RhdGljIHZvaWQgY2xl
YW5VcFRlc3RXZWJQdXNoRChOU1VSTCAqdGVtcERpcikKIHsKKyAgICBpZiAoIXNob3VsZFNldHVw
V2ViUHVzaEQoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAga2lsbEZpcnN0SW5zdGFuY2VPZkRh
ZW1vbihAIndlYnB1c2hkIik7CiAKICAgICBpZiAoIVtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFu
YWdlcl0gZmlsZUV4aXN0c0F0UGF0aDp0ZW1wRGlyLnBhdGhdKQpAQCAtMjQyLDcgKzI2MSw3IEBA
IHN0YXRpYyBWZWN0b3I8dWludDhfdD4gZW5jb2RlU3RyaW5nKGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSkKIH0KIAogLy8gRklYTUU6IFJlLWVuYWJsZSB0aGlzIHRlc3Qgb24gTWFjIG9uY2Ugd2Via2l0
Lm9yZy8yMzI4NTcgaXMgcmVzb2x2ZWQuCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JN
KE1BQykgJiYgIVVTRShBUFBMRV9JTlRFUk5BTF9TREspCiBURVNUKFdlYlB1c2hELCBESVNBQkxF
RF9CYXNpY0NvbW11bmljYXRpb24pCiAjZWxzZQogVEVTVChXZWJQdXNoRCwgQmFzaWNDb21tdW5p
Y2F0aW9uKQpAQCAtMzIxLDcgKzM0MCw3IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBtYWluQnl0ZXMg
PSBSIldFQlBVU0hSRVNPVVJDRSgKIClXRUJQVVNIUkVTT1VSQ0UiOwogCiAvLyBGSVhNRTogUmUt
ZW5hYmxlIHRoaXMgdGVzdCBvbiBNYWMgb25jZSB3ZWJraXQub3JnLzIzMjg1NyBpcyByZXNvbHZl
ZC4KLSNpZiBQTEFURk9STShNQUMpCisjaWYgUExBVEZPUk0oTUFDKSAmJiAhVVNFKEFQUExFX0lO
VEVSTkFMX1NESykKIFRFU1QoV2ViUHVzaEQsIERJU0FCTEVEX1Blcm1pc3Npb25NYW5hZ2VtZW50
KQogI2Vsc2UKIFRFU1QoV2ViUHVzaEQsIFBlcm1pc3Npb25NYW5hZ2VtZW50KQpAQCAtNDU0LDcg
KzQ3Myw3IEBAIHN0YXRpYyB2b2lkIGNsZWFyV2Vic2l0ZURhdGFTdG9yZShXS1dlYnNpdGVEYXRh
U3RvcmUgKnN0b3JlKQogfQogCiAvLyBGSVhNRTogUmUtZW5hYmxlIHRoaXMgdGVzdCBvbiBNYWMg
b25jZSB3ZWJraXQub3JnLzIzMjg1NyBpcyByZXNvbHZlZC4KLSNpZiBQTEFURk9STShNQUMpCisj
aWYgUExBVEZPUk0oTUFDKSAmJiAhVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIFRFU1QoV2ViUHVz
aEQsIERJU0FCTEVEX0hhbmRsZUluamVjdGVkUHVzaCkKICNlbHNlCiBURVNUKFdlYlB1c2hELCBI
YW5kbGVJbmplY3RlZFB1c2gpCg==
</data>
<flag name="review"
          id="472612"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447094</attachid>
            <date>2021-12-13 19:06:12 -0800</date>
            <delta_ts>2021-12-13 20:24:41 -0800</delta_ts>
            <desc>PFL v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>23342</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDI5NDVkMDcxMGI2NS4uZjU4YmU1NWI2Y2ViIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0xMi0xMyAgQnJh
ZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgVGVhY2ggd2VicHVzaHRv
b2wgdG8gcmVnaXN0ZXIgYW5kICJob3N0IiB0aGUgZGFlbW9uLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MjY1CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgVGltIEhvcnRvbi4KKworICAgICAgICAqIGluc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5oOiBS
ZW1vdmUgYHVzaW5nIEpTQzo6TWVzc2FnZVR5cGVgIGJlY2F1c2UgaXQgbWFrZXMgaXQgaGFyZCBm
b3Igb3RoZXJzCisgICAgICAgICAgdG8gYWxzbyBoYXZlIGEgYE1lc3NhZ2VUeXBlYCB0eXBlLgor
ICAgICAgICAqIGluc3BlY3Rvci9KU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQuaDoKKyAgICAg
ICAgKiBydW50aW1lL0NvbnNvbGVUeXBlcy5oOgorCiAyMDIxLTEyLTEwICBUYWRldSBaYWdhbGxv
ICA8dHphZ2FsbG9AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBNYWMtc3BlY2lmaWMgQVJN
NjRFSGFzaCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9Db25zb2xlTWVzc2FnZS5oCmluZGV4IDliZTI3ZDEyMDRiNy4uMWQxNDk2MzJiOTAyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdl
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5o
CkBAIC00Myw2ICs0Myw4IEBAIGNsYXNzIENhbGxGcmFtZTsKIGNsYXNzIEpTR2xvYmFsT2JqZWN0
OwogfQogCit1c2luZyBKU0M6Ok1lc3NhZ2VUeXBlOworCiBuYW1lc3BhY2UgSW5zcGVjdG9yIHsK
IAogY2xhc3MgQ29uc29sZUZyb250ZW5kRGlzcGF0Y2hlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50LmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVu
dC5oCmluZGV4IGUwZjE1Yzg1MGZlYS4uNmU1NzNjNGRmZDFmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RDb25zb2xl
Q2xpZW50LmgKQEAgLTI5LDYgKzI5LDggQEAKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKK3VzaW5nIEpTQzo6TWVzc2FnZVR5cGU7CisK
IG5hbWVzcGFjZSBJbnNwZWN0b3IgewogCiBjbGFzcyBJbnNwZWN0b3JDb25zb2xlQWdlbnQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xlVHlwZXMuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVUeXBlcy5oCmluZGV4IGZjZGE2
NmRkYTlhZi4uY2EzM2JjM2NiMzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Db25zb2xlVHlwZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Db25zb2xlVHlwZXMuaApAQCAtMTE1LDUgKzExNSw0IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVu
dW1UcmFpdHM8SlNDOjpNZXNzYWdlTGV2ZWw+IHsKIH0gLy8gbmFtZXNwYWNlIFdURgogCiB1c2lu
ZyBKU0M6Ok1lc3NhZ2VTb3VyY2U7Ci11c2luZyBKU0M6Ok1lc3NhZ2VUeXBlOwogdXNpbmcgSlND
OjpNZXNzYWdlTGV2ZWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmI4MWQzYTAwZmJiLi5iNGY4NWFmZTBmZTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMS0xMi0xMyAgQnJhZHkgRWlkc29uICA8
YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgVGVhY2ggd2VicHVzaHRvb2wgdG8gcmVnaXN0
ZXIgYW5kICJob3N0IiB0aGUgZGFlbW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MjY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRv
bi4KKworICAgICAgICAqIHBhZ2UvUGFnZUNvbnNvbGVDbGllbnQuaDoKKwogMjAyMS0xMi0xMCAg
Q29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCwgcmV2ZXJ0aW5nIHIyODY4MzYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2VDb25zb2xlQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xp
ZW50LmgKaW5kZXggNTIxNzA3YTc0NTBiLi45YTY1NDlhNzkyYmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2VDb25zb2xlQ2xpZW50LmgKQEAgLTQwLDYgKzQwLDggQEAgbmFtZXNwYWNlIEpTQyB7
CiBjbGFzcyBDYWxsRnJhbWU7CiB9CiAKK3VzaW5nIEpTQzo6TWVzc2FnZVR5cGU7CisKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGMzYTgzOGRhMWYx
ZS4uZjU0MDZiMDRhYWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIxLTEyLTEzICBC
cmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBUZWFjaCB3ZWJwdXNo
dG9vbCB0byByZWdpc3RlciBhbmQgImhvc3QiIHRoZSBkYWVtb24uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQyNjUKKworICAgICAgICBSZXZpZXdl
ZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIENvdmVyZWQgYnkgQVBJIHRlc3RzIHZlcmlmeWlu
ZyBob3N0aW5nIG1vZGUgb3BlcmF0aW9uLgorCisgICAgICAgIEFzIHZhcmlvdXMgZW5naW5lZXJz
IHdvcmsgb24gdmFyaW91cyBwYXJ0cyBvZiB0aGUgcHJvamVjdCwgaXQncyBiZWNvbWUgYXBwYXJl
bnQgdGhhdCBpdCdzIHN1cGVyIHVzZWZ1bAorICAgICAgICB0byBoYXZlIGEgdG9vbCBoYW5kbGUg
dGhlICJzZXR0aW5nIHVwIiBvZiB0aGUgZGFlbW9uIGl0c2VsZiwgdG8gYXZvaWQgbGF1bmNoY3Rs
LCBldGMuCisgICAgICAgIAorICAgICAgICBJbXBsZW1lbnQgdGhhdCwgYXMgd2VsbCBhcyBhIGZl
dyBvdGhlciBuaWNldGllcyBmb3VuZCB3aGlsZSB0ZXN0aW5nLgorICAgICAgICAKKyAgICAgICAg
KiBDb25maWd1cmF0aW9ucy93ZWJwdXNodG9vbC54Y2NvbmZpZzoKKyAgICAgICAgKiBSZXNvdXJj
ZXMvd2VicHVzaHRvb2wuZW50aXRsZW1lbnRzOgorICAgICAgICAKKyAgICAgICAgKiBTaGFyZWQv
RGFlbW9uL0RhZW1vblV0aWxpdGllcy5tbToKKyAgICAgICAgKFdlYktpdDo6c3RhcnRMaXN0ZW5p
bmdGb3JNYWNoU2VydmljZUNvbm5lY3Rpb25zKToKKyAgICAgICAgCisgICAgICAgICogd2VicHVz
aGQvQXBwQnVuZGxlUmVxdWVzdC5tbToKKyAgICAgICAgKFdlYlB1c2hEOjpBcHBCdW5kbGVSZXF1
ZXN0OjpzdGFydCk6CisgICAgICAgIAorICAgICAgICAqIHdlYnB1c2hkL1B1c2hDbGllbnRDb25u
ZWN0aW9uLmg6CisgICAgICAgICogd2VicHVzaGQvUHVzaENsaWVudENvbm5lY3Rpb24ubW06Cisg
ICAgICAgIChXZWJQdXNoRDo6Q2xpZW50Q29ubmVjdGlvbjo6c2V0SG9zdEFwcEF1ZGl0VG9rZW5E
YXRhKToKKyAgICAgICAgKFdlYlB1c2hEOjpDbGllbnRDb25uZWN0aW9uOjpicm9hZGNhc3REZWJ1
Z01lc3NhZ2UpOgorCisgICAgICAgICogd2VicHVzaGQvV2ViUHVzaERhZW1vbi5oOgorICAgICAg
ICAqIHdlYnB1c2hkL1dlYlB1c2hEYWVtb24ubW06CisgICAgICAgIChXZWJQdXNoRDo6RGFlbW9u
Ojpicm9hZGNhc3RBbGxDb25uZWN0aW9uSWRlbnRpdGllcyk6CisKKyAgICAgICAgKiB3ZWJwdXNo
ZC93ZWJwdXNodG9vbC9XZWJQdXNoVG9vbENvbm5lY3Rpb24uaDoKKyAgICAgICAgKiB3ZWJwdXNo
ZC93ZWJwdXNodG9vbC9XZWJQdXNoVG9vbENvbm5lY3Rpb24ubW06CisgICAgICAgIChXZWJQdXNo
VG9vbDo6Q29ubmVjdGlvbjo6Y29ubmVjdFRvU2VydmljZSk6CisgICAgICAgIChXZWJQdXNoVG9v
bDo6Q29ubmVjdGlvbjo6Y29ubmVjdGlvbkRyb3BwZWQpOgorCisgICAgICAgICogd2VicHVzaGQv
d2VicHVzaHRvb2wvV2ViUHVzaFRvb2xNYWluLm1tOgorICAgICAgICAocHJpbnRVc2FnZUFuZFRl
cm1pbmF0ZSk6CisgICAgICAgIChyZWdpc3RlckRhZW1vbldpdGhMYXVuY2hEKToKKyAgICAgICAg
KG1haW4pOgorCiAyMDIxLTEyLTEwICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4K
IAogICAgICAgICBUZWFjaCB3ZWJwdXNoZCB0byBsYXVuY2ggYW4gYXBwIGluIHJlc3BvbnNlIHRv
IGFuIGluamVjdGVkIG1lc3NhZ2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3Vy
YXRpb25zL3dlYnB1c2h0b29sLnhjY29uZmlnIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9u
cy93ZWJwdXNodG9vbC54Y2NvbmZpZwppbmRleCBkNTQyOTU5YjRhZGMuLjliN2I4NThmODdjMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy93ZWJwdXNodG9vbC54Y2Nv
bmZpZworKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL3dlYnB1c2h0b29sLnhjY29u
ZmlnCkBAIC0yOSw3ICsyOSwxNCBAQCBTS0lQX0lOU1RBTEwgPSBZRVM7CiBFWENMVURFRF9TT1VS
Q0VfRklMRV9OQU1FU1tzZGs9YXBwbGV0dipdID0gKjsKIEVYQ0xVREVEX1NPVVJDRV9GSUxFX05B
TUVTW3Nkaz13YXRjaCpdID0gKjsKIAotT1RIRVJfTERGTEFHUyA9IC1mcmFtZXdvcmsgRm91bmRh
dGlvbiAtZnJhbWV3b3JrIENvcmVGb3VuZGF0aW9uIC1mcmFtZXdvcmsgV2ViS2l0IC1mcmFtZXdv
cmsgSmF2YVNjcmlwdENvcmUKK1dLX0FQUFNFUlZFUlNVUFBPUlRfTERGTEFHUyA9ICQoV0tfQVBQ
U0VSVkVSU1VQUE9SVF9MREZMQUdTXyQoV0tfUExBVEZPUk1fTkFNRSkpOworV0tfQVBQU0VSVkVS
U1VQUE9SVF9MREZMQUdTX21hY29zeCA9ICQoV0tfQVBQU0VSVkVSU1VQUE9SVF9MREZMQUdTJChX
S19NQUNPU18xMjAwKSk7CitXS19BUFBTRVJWRVJTVVBQT1JUX0xERkxBR1NfTUFDT1NfU0lOQ0Vf
MTIwMCA9IC1mcmFtZXdvcmsgQXBwU2VydmVyU3VwcG9ydAorV0tfQVBQU0VSVkVSU1VQUE9SVF9M
REZMQUdTX2lwaG9uZW9zID0gJChXS19BUFBTRVJWRVJTVVBQT1JUX0xERkxBR1MkKFdLX0lPU18x
NSkpOworV0tfQVBQU0VSVkVSU1VQUE9SVF9MREZMQUdTX2lwaG9uZXNpbXVsYXRvciA9ICQoV0tf
QVBQU0VSVkVSU1VQUE9SVF9MREZMQUdTJChXS19JT1NfMTUpKTsKK1dLX0FQUFNFUlZFUlNVUFBP
UlRfTERGTEFHU19JT1NfU0lOQ0VfMTUgPSAtZnJhbWV3b3JrIEFwcFNlcnZlclN1cHBvcnQKKwor
T1RIRVJfTERGTEFHUyA9IC1mcmFtZXdvcmsgRm91bmRhdGlvbiAtZnJhbWV3b3JrIENvcmVGb3Vu
ZGF0aW9uIC1mcmFtZXdvcmsgV2ViS2l0IC1mcmFtZXdvcmsgSmF2YVNjcmlwdENvcmUgJChXS19B
UFBTRVJWRVJTVVBQT1JUX0xERkxBR1MpCiBMSUJSQVJZX1NFQVJDSF9QQVRIUyA9ICQoQlVJTFRf
UFJPRFVDVFNfRElSKTsKIAogQ09ERV9TSUdOX0VOVElUTEVNRU5UUyA9IFJlc291cmNlcy93ZWJw
dXNodG9vbC5lbnRpdGxlbWVudHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Jlc291cmNl
cy93ZWJwdXNodG9vbC5lbnRpdGxlbWVudHMgYi9Tb3VyY2UvV2ViS2l0L1Jlc291cmNlcy93ZWJw
dXNodG9vbC5lbnRpdGxlbWVudHMKaW5kZXggNjMyNGYwNWFkOTZhLi41OTU0OTczZTg3YzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL3dlYnB1c2h0b29sLmVudGl0bGVtZW50
cworKysgYi9Tb3VyY2UvV2ViS2l0L1Jlc291cmNlcy93ZWJwdXNodG9vbC5lbnRpdGxlbWVudHMK
QEAgLTYsNSArNiw3IEBACiAJPHRydWUvPgogCTxrZXk+Y29tLmFwcGxlLnByaXZhdGUud2Via2l0
LndlYnB1c2guaW5qZWN0PC9rZXk+CiAJPHRydWUvPgorCTxrZXk+Y29tLmFwcGxlLnByaXZhdGUu
eHBjLmxhdW5jaGQuam9iLW1hbmFnZXI8L2tleT4KKwk8c3RyaW5nPndlYnB1c2h0b29sPC9zdHJp
bmc+CiA8L2RpY3Q+CiA8L3BsaXN0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
RGFlbW9uL0RhZW1vblV0aWxpdGllcy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0RhZW1vbi9E
YWVtb25VdGlsaXRpZXMubW0KaW5kZXggMmI0MGY5M2E4YzVhLi5lMDhjMDRhZDgzZWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0RhZW1vbi9EYWVtb25VdGlsaXRpZXMubW0KKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvRGFlbW9uL0RhZW1vblV0aWxpdGllcy5tbQpAQCAtNTQs
NiArNTQsOSBAQCB2b2lkIHN0YXJ0TGlzdGVuaW5nRm9yTWFjaFNlcnZpY2VDb25uZWN0aW9ucyhj
b25zdCBjaGFyKiBzZXJ2aWNlTmFtZSwgY29uc3QgY2hhcgogI2Vsc2UKICAgICAgICAgICAgICAg
ICBOU0xvZyhAIkZhaWxlZCB0byBzdGFydCBsaXN0ZW5pbmcgZm9yIGNvbm5lY3Rpb25zIHRvIG1h
Y2ggc2VydmljZSAlcywgbGlrZWx5IGJlY2F1c2UgaXQgaXMgbm90IHJlZ2lzdGVyZWQgd2l0aCBs
YXVuY2hkIiwgc2VydmljZU5hbWUpOwogI2VuZGlmCisgICAgICAgICAgICAgICAgTlNMb2coQCJS
ZW1vdmluZyBwZWVyIGNvbm5lY3Rpb24gJXAiLCBwZWVyKTsKKyAgICAgICAgICAgICAgICBjb25u
ZWN0aW9uUmVtb3ZlZChwZWVyKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICBpZiAoZXZlbnQgPT0gWFBDX0VSUk9SX0NPTk5FQ1RJT05fSU5URVJS
VVBURUQpIHsKICAgICAgICAgICAgICAgICBOU0xvZyhAIlJlbW92aW5nIHBlZXIgY29ubmVjdGlv
biAlcCIsIHBlZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93ZWJwdXNoZC9BcHBCdW5k
bGVSZXF1ZXN0Lm1tIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC9BcHBCdW5kbGVSZXF1ZXN0Lm1t
CmluZGV4IDU3M2FkNGQ0ZTAzMy4uM2NkM2RiMDdmNmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L3dlYnB1c2hkL0FwcEJ1bmRsZVJlcXVlc3QubW0KKysrIGIvU291cmNlL1dlYktpdC93ZWJw
dXNoZC9BcHBCdW5kbGVSZXF1ZXN0Lm1tCkBAIC01Myw4ICs1MywxMCBAQCB2b2lkIEFwcEJ1bmRs
ZVJlcXVlc3Q6OnN0YXJ0KCkKIAogICAgIGlmIChtX2Nvbm5lY3Rpb24tPnVzZU1vY2tCdW5kbGVz
Rm9yVGVzdGluZygpKQogICAgICAgICBtX2FwcEJ1bmRsZSA9IE1vY2tBcHBCdW5kbGVGb3JUZXN0
aW5nOjpjcmVhdGUobV9vcmlnaW5TdHJpbmcsIG1fY29ubmVjdGlvbi0+aG9zdEFwcENvZGVTaWdu
aW5nSWRlbnRpZmllcigpLCAqdGhpcyk7Ci0gICAgZWxzZQorICAgIGVsc2UgeworICAgICAgICBt
X2Nvbm5lY3Rpb24tPmJyb2FkY2FzdERlYnVnTWVzc2FnZSgiQ2xpZW50IGlzIHRyeWluZyB0byBp
bml0aWF0ZSBhcHAgYnVuZGxlIHJlcXVlc3Qgd2l0aG91dCBoYXZpbmcgY29uZmlndXJlZCBtb2Nr
IGFwcCBidW5kbGVzIGZvciB0ZXN0aW5nLiBBYm91dCB0byBjcmFzaC4uLiIpOwogICAgICAgICBS
RUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KIAogICAgIHN0YXJ0SW50ZXJuYWwo
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvUHVzaENsaWVudENvbm5l
Y3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvUHVzaENsaWVudENvbm5lY3Rpb24uaApp
bmRleCA3ZmE0M2ZkOWUwOWYuLjllY2VhMTJiZjI1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC93ZWJwdXNoZC9QdXNoQ2xpZW50Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2Vi
cHVzaGQvUHVzaENsaWVudENvbm5lY3Rpb24uaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUg
PG9wdGlvbmFsPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CisjaW5jbHVkZSA8d3RmL0lkZW50aWZpZWQuaD4KICNpbmNsdWRlIDx3dGYvT1NPYmplY3RQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRy
Lmg+CkBAIC00NSw3ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJQdXNoRCB7CiAKIGNsYXNzIEFwcEJ1
bmRsZVJlcXVlc3Q7CiAKLWNsYXNzIENsaWVudENvbm5lY3Rpb24gOiBwdWJsaWMgUmVmQ291bnRl
ZDxDbGllbnRDb25uZWN0aW9uPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPENsaWVudENvbm5lY3Rp
b24+IHsKK2NsYXNzIENsaWVudENvbm5lY3Rpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxDbGllbnRD
b25uZWN0aW9uPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPENsaWVudENvbm5lY3Rpb24+LCBwdWJs
aWMgSWRlbnRpZmllZDxDbGllbnRDb25uZWN0aW9uPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxDbGllbnRDb25uZWN0aW9uPiBjcmVhdGUo
eHBjX2Nvbm5lY3Rpb25fdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1B1
c2hDbGllbnRDb25uZWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC9QdXNoQ2xpZW50
Q29ubmVjdGlvbi5tbQppbmRleCBmODllZjI4MjNiYTMuLjAyMmY4YWRlNWUwYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC93ZWJwdXNoZC9QdXNoQ2xpZW50Q29ubmVjdGlvbi5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L3dlYnB1c2hkL1B1c2hDbGllbnRDb25uZWN0aW9uLm1tCkBAIC03Myw2ICs3
Myw3IEBAIHZvaWQgQ2xpZW50Q29ubmVjdGlvbjo6c2V0SG9zdEFwcEF1ZGl0VG9rZW5EYXRhKGNv
bnN0IFZlY3Rvcjx1aW50OF90PiYgdG9rZW5EYXRhCiAgICAgfQogCiAgICAgbV9ob3N0QXBwQXVk
aXRUb2tlbiA9IFdURk1vdmUodG9rZW4pOworICAgIERhZW1vbjo6c2luZ2xldG9uKCkuYnJvYWRj
YXN0QWxsQ29ubmVjdGlvbklkZW50aXRpZXMoKTsKIH0KIAogY29uc3QgU3RyaW5nJiBDbGllbnRD
b25uZWN0aW9uOjpob3N0QXBwQ29kZVNpZ25pbmdJZGVudGlmaWVyKCkKQEAgLTEyMSw5ICsxMjIs
OSBAQCB2b2lkIENsaWVudENvbm5lY3Rpb246OmJyb2FkY2FzdERlYnVnTWVzc2FnZShjb25zdCBT
dHJpbmcmIG1lc3NhZ2UpCiAgICAgU3RyaW5nIG1lc3NhZ2VJZGVudGlmaWVyOwogICAgIGF1dG8g
c2lnbmluZ0lkZW50aWZlciA9IGhvc3RBcHBDb2RlU2lnbmluZ0lkZW50aWZpZXIoKTsKICAgICBp
ZiAoc2lnbmluZ0lkZW50aWZlci5pc0VtcHR5KCkpCi0gICAgICAgIG1lc3NhZ2VJZGVudGlmaWVy
ID0gbWFrZVN0cmluZygiWygweCIsIGhleChyZWludGVycHJldF9jYXN0PHVpbnQ2NF90PihtX3hw
Y0Nvbm5lY3Rpb24uZ2V0KCkpLCBXVEY6OkhleENvbnZlcnNpb25Nb2RlOjpMb3dlcmNhc2UpLCAi
KV0gIik7CisgICAgICAgIG1lc3NhZ2VJZGVudGlmaWVyID0gbWFrZVN0cmluZygiWygweCIsIGhl
eChyZWludGVycHJldF9jYXN0PHVpbnQ2NF90PihtX3hwY0Nvbm5lY3Rpb24uZ2V0KCkpLCBXVEY6
OkhleENvbnZlcnNpb25Nb2RlOjpMb3dlcmNhc2UpLCAiKSAoIiwgU3RyaW5nOjpudW1iZXIoaWRl
bnRpZmllcigpKSwgIiApXSAiKTsKICAgICBlbHNlCi0gICAgICAgIG1lc3NhZ2VJZGVudGlmaWVy
ID0gbWFrZVN0cmluZygiWyIsIHNpZ25pbmdJZGVudGlmZXIsICIgKDB4IiwgaGV4KHJlaW50ZXJw
cmV0X2Nhc3Q8dWludDY0X3Q+KG1feHBjQ29ubmVjdGlvbi5nZXQoKSksIFdURjo6SGV4Q29udmVy
c2lvbk1vZGU6Okxvd2VyY2FzZSksICIpXSAiKTsKKyAgICAgICAgbWVzc2FnZUlkZW50aWZpZXIg
PSBtYWtlU3RyaW5nKCJbIiwgc2lnbmluZ0lkZW50aWZlciwgIiAoIiwgU3RyaW5nOjpudW1iZXIo
aWRlbnRpZmllcigpKSwgIildICIpOwogCiAgICAgRGFlbW9uOjpzaW5nbGV0b24oKS5icm9hZGNh
c3REZWJ1Z01lc3NhZ2UoSlNDOjpNZXNzYWdlTGV2ZWw6OkluZm8sIG1ha2VTdHJpbmcobWVzc2Fn
ZUlkZW50aWZpZXIsIG1lc3NhZ2UpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2Vi
cHVzaGQvV2ViUHVzaERhZW1vbi5oIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC9XZWJQdXNoRGFl
bW9uLmgKaW5kZXggYzAyNGIyMGVmNGNmLi5jYWQ0ODMwNzA1MDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvd2VicHVzaGQvV2ViUHVzaERhZW1vbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2Vi
cHVzaGQvV2ViUHVzaERhZW1vbi5oCkBAIC03MCw2ICs3MCw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IGdldFBlbmRpbmdQdXNoTWVzc2FnZXMoQ2xpZW50Q29ubmVjdGlvbiosIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoY29uc3QgVmVjdG9yPFdlYktpdDo6V2ViUHVzaE1lc3NhZ2U+Jik+JiYgcmVwbHlT
ZW5kZXIpOwogCiAgICAgdm9pZCBicm9hZGNhc3REZWJ1Z01lc3NhZ2UoSlNDOjpNZXNzYWdlTGV2
ZWwsIGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgYnJvYWRjYXN0QWxsQ29ubmVjdGlvbklkZW50
aXRpZXMoKTsKIAogcHJpdmF0ZToKICAgICBEYWVtb24oKSA9IGRlZmF1bHQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1dlYlB1c2hEYWVtb24ubW0gYi9Tb3VyY2UvV2ViS2l0
L3dlYnB1c2hkL1dlYlB1c2hEYWVtb24ubW0KaW5kZXggNjg4OTg1NWUzMGQ1Li5kOWI2ZWZmYzNk
YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvV2ViUHVzaERhZW1vbi5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1dlYlB1c2hEYWVtb24ubW0KQEAgLTE4NSw2ICsx
ODUsMTQgQEAgdm9pZCBEYWVtb246OmJyb2FkY2FzdERlYnVnTWVzc2FnZShKU0M6Ok1lc3NhZ2VM
ZXZlbCBtZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYKICAgICB9CiB9CiAKK3ZvaWQgRGFlbW9u
Ojpicm9hZGNhc3RBbGxDb25uZWN0aW9uSWRlbnRpdGllcygpCit7CisgICAgYnJvYWRjYXN0RGVi
dWdNZXNzYWdlKChKU0M6Ok1lc3NhZ2VMZXZlbCk0LCAiPT09XG5DdXJyZW50IGNvbm5lY3Rpb25z
OiIpOworICAgIGZvciAoYXV0byYgaXRlcmF0b3IgOiBtX2Nvbm5lY3Rpb25NYXApCisgICAgICAg
IGl0ZXJhdG9yLnZhbHVlLT5icm9hZGNhc3REZWJ1Z01lc3NhZ2UoIiIpOworICAgIGJyb2FkY2Fz
dERlYnVnTWVzc2FnZSgoSlNDOjpNZXNzYWdlTGV2ZWwpNCwgIj09PSIpOworfQorCiB2b2lkIERh
ZW1vbjo6Y29ubmVjdGlvbkV2ZW50SGFuZGxlcih4cGNfb2JqZWN0X3QgcmVxdWVzdCkKIHsKICAg
ICBpZiAoeHBjX2dldF90eXBlKHJlcXVlc3QpICE9IFhQQ19UWVBFX0RJQ1RJT05BUlkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL3dlYnB1c2h0b29sL1dlYlB1c2hUb29sQ29u
bmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC93ZWJwdXNodG9vbC9XZWJQdXNoVG9v
bENvbm5lY3Rpb24uaAppbmRleCBiZTJmMTc5OTFjNDcuLjI0ZjQyNWNlMDVkMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC93ZWJwdXNoZC93ZWJwdXNodG9vbC9XZWJQdXNoVG9vbENvbm5lY3Rp
b24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL3dlYnB1c2h0b29sL1dlYlB1c2hUb29s
Q29ubmVjdGlvbi5oCkBAIC00MSwxMyArNDEsMTggQEAgZW51bSBjbGFzcyBBY3Rpb24gewogfTsK
IAogZW51bSBjbGFzcyBQcmVmZXJUZXN0U2VydmljZSA6IGJvb2wgewotICAgIFllcywKICAgICBO
bywKKyAgICBZZXMsCiB9OwogCiBlbnVtIGNsYXNzIFJlY29ubmVjdCA6IGJvb2wgeworICAgIE5v
LAogICAgIFllcywKK307CisKK2VudW0gY2xhc3MgV2FpdEZvclNlcnZpY2VUb0V4aXN0IDogYm9v
bCB7CiAgICAgTm8sCisgICAgWWVzLAogfTsKIAogY2xhc3MgQ29ubmVjdGlvbiA6IHB1YmxpYyBD
YW5NYWtlV2Vha1B0cjxDb25uZWN0aW9uPiB7CkBAIC01Niw3ICs2MSw3IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPENvbm5lY3Rpb24+IGNyZWF0ZShBY3Rpb24sIFByZWZl
clRlc3RTZXJ2aWNlLCBSZWNvbm5lY3QpOwogICAgIENvbm5lY3Rpb24oQWN0aW9uLCBQcmVmZXJU
ZXN0U2VydmljZSwgUmVjb25uZWN0KTsKIAotICAgIHZvaWQgY29ubmVjdFRvU2VydmljZSgpOwor
ICAgIHZvaWQgY29ubmVjdFRvU2VydmljZShXYWl0Rm9yU2VydmljZVRvRXhpc3QpOwogCiAgICAg
dm9pZCBzZXRQdXNoTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8UHVzaE1lc3NhZ2VGb3JUZXN0aW5n
PiYmIG1lc3NhZ2UpIHsgbV9wdXNoTWVzc2FnZSA9IFdURk1vdmUobWVzc2FnZSk7IH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC93ZWJwdXNoZC93ZWJwdXNodG9vbC9XZWJQdXNoVG9vbENv
bm5lY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL3dlYnB1c2h0b29sL1dlYlB1c2hU
b29sQ29ubmVjdGlvbi5tbQppbmRleCBhNDMzNGQ2NDYzNzcuLmMzMzRhZjY0YTliYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC93ZWJwdXNoZC93ZWJwdXNodG9vbC9XZWJQdXNoVG9vbENvbm5l
Y3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC93ZWJwdXNodG9vbC9XZWJQdXNo
VG9vbENvbm5lY3Rpb24ubW0KQEAgLTY2LDcgKzY2LDcgQEAgQ29ubmVjdGlvbjo6Q29ubmVjdGlv
bihBY3Rpb24gYWN0aW9uLCBQcmVmZXJUZXN0U2VydmljZSBwcmVmZXJUZXN0U2VydmljZSwgUmVj
b24KICAgICAgICAgbV9zZXJ2aWNlTmFtZSA9ICJjb20uYXBwbGUud2Via2l0LndlYnB1c2hkLnNl
cnZpY2UiOwogfQogCi12b2lkIENvbm5lY3Rpb246OmNvbm5lY3RUb1NlcnZpY2UoKQordm9pZCBD
b25uZWN0aW9uOjpjb25uZWN0VG9TZXJ2aWNlKFdhaXRGb3JTZXJ2aWNlVG9FeGlzdCB3YWl0Rm9y
U2VydmljZVRvRXhpc3QpCiB7CiAgICAgaWYgKG1fY29ubmVjdGlvbikKICAgICAgICAgcmV0dXJu
OwpAQCAtOTksMTMgKzk5LDE1IEBAIHZvaWQgQ29ubmVjdGlvbjo6Y29ubmVjdFRvU2VydmljZSgp
CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfSk7CiAKLSAgICBh
dXRvIHJlc3VsdCA9IG1heWJlQ29ubmVjdFRvU2VydmljZShtX3NlcnZpY2VOYW1lKTsKLSAgICBp
ZiAocmVzdWx0ID09IE1BQ0hfUE9SVF9OVUxMKQotICAgICAgICBwcmludGYoIldhaXRpbmcgZm9y
IHNlcnZpY2UgJyVzJyB0byBiZSBhdmFpbGFibGVcbiIsIG1fc2VydmljZU5hbWUpOworICAgIGlm
ICh3YWl0Rm9yU2VydmljZVRvRXhpc3QgPT0gV2FpdEZvclNlcnZpY2VUb0V4aXN0OjpZZXMpIHsK
KyAgICAgICAgYXV0byByZXN1bHQgPSBtYXliZUNvbm5lY3RUb1NlcnZpY2UobV9zZXJ2aWNlTmFt
ZSk7CisgICAgICAgIGlmIChyZXN1bHQgPT0gTUFDSF9QT1JUX05VTEwpCisgICAgICAgICAgICBw
cmludGYoIldhaXRpbmcgZm9yIHNlcnZpY2UgJyVzJyB0byBiZSBhdmFpbGFibGVcbiIsIG1fc2Vy
dmljZU5hbWUpOwogCi0gICAgd2hpbGUgKHJlc3VsdCA9PSBNQUNIX1BPUlRfTlVMTCkgewotICAg
ICAgICB1c2xlZXAoMTAwMCk7Ci0gICAgICAgIHJlc3VsdCA9IG1heWJlQ29ubmVjdFRvU2Vydmlj
ZShtX3NlcnZpY2VOYW1lKTsKKyAgICAgICAgd2hpbGUgKHJlc3VsdCA9PSBNQUNIX1BPUlRfTlVM
TCkgeworICAgICAgICAgICAgdXNsZWVwKDEwMDApOworICAgICAgICAgICAgcmVzdWx0ID0gbWF5
YmVDb25uZWN0VG9TZXJ2aWNlKG1fc2VydmljZU5hbWUpOworICAgICAgICB9CiAgICAgfQogCiAg
ICAgeHBjX2Nvbm5lY3Rpb25fYWN0aXZhdGUobV9jb25uZWN0aW9uLmdldCgpKTsKQEAgLTE4NCw3
ICsxODYsNyBAQCB2b2lkIENvbm5lY3Rpb246OmNvbm5lY3Rpb25Ecm9wcGVkKCkKICAgICBpZiAo
bV9yZWNvbm5lY3QpIHsKICAgICAgICAgY2FsbE9uTWFpblJ1bkxvb3AoW3RoaXMsIHdlYWtUaGlz
ID0gV2Vha1B0ciB7IHRoaXMgfV0gewogICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQotICAgICAg
ICAgICAgICAgIGNvbm5lY3RUb1NlcnZpY2UoKTsKKyAgICAgICAgICAgICAgICBjb25uZWN0VG9T
ZXJ2aWNlKFdhaXRGb3JTZXJ2aWNlVG9FeGlzdDo6WWVzKTsKICAgICAgICAgfSk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL3dlYnB1
c2h0b29sL1dlYlB1c2hUb29sTWFpbi5tbSBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvd2VicHVz
aHRvb2wvV2ViUHVzaFRvb2xNYWluLm1tCmluZGV4IGE1ODc5NTk4ZGE0Zi4uZjg2ZjBmZTg3MWM5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL3dlYnB1c2h0b29sL1dlYlB1c2hU
b29sTWFpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL3dlYnB1c2h0b29sL1dlYlB1
c2hUb29sTWFpbi5tbQpAQCAtNDMsNiArNDMsMTEgQEAgc3RhdGljIHZvaWQgcHJpbnRVc2FnZUFu
ZFRlcm1pbmF0ZShOU1N0cmluZyAqbWVzc2FnZSkKICAgICBmcHJpbnRmKHN0ZGVyciwgIiAgICBD
b25uZWN0cyB0byBtYWNoIHNlcnZpY2UgXCJvcmcud2Via2l0LndlYnB1c2h0ZXN0ZGFlbW9uLnNl
cnZpY2VcIiAoRGVmYXVsdClcbiIpOwogICAgIGZwcmludGYoc3RkZXJyLCAiICAtLXByb2R1Y3Rp
b25cbiIpOwogICAgIGZwcmludGYoc3RkZXJyLCAiICAgIENvbm5lY3RzIHRvIG1hY2ggc2Vydmlj
ZSBcImNvbS5hcHBsZS53ZWJraXQud2VicHVzaGQuc2VydmljZVwiXG4iKTsKKyNpZiBIQVZFKE9T
X0xBVU5DSERfSk9CKQorICAgIGZwcmludGYoc3RkZXJyLCAiICAtLWhvc3RcbiIpOworICAgIGZw
cmludGYoc3RkZXJyLCAiICAgIER5bmFtaWNhbGx5IHJlZ2lzdGVycyB0aGUgc2VydmljZSB3aXRo
IGxhdW5jaGQgc28gaXQgaXMgdmlzaWJsZSB0byBvdGhlciBhcHBsaWNhdGlvbnNcbiIpOworICAg
IGZwcmludGYoc3RkZXJyLCAiICAgIFRoZSBzZXJ2aWNlIG5hbWUgb2YgdGhlIHJlZ2lzdHJhdGlv
biBkZXBlbmRzIG9uIGVpdGhlciB0aGUgLS1kZXZlbG9wbWVudCBvciAtLXByb2R1Y3Rpb24gb3B0
aW9uIGNob3NlblxuIik7CisjZW5kaWYKICAgICBmcHJpbnRmKHN0ZGVyciwgIiAgLS1zdHJlYW1E
ZWJ1Z01lc3NhZ2VzXG4iKTsKICAgICBmcHJpbnRmKHN0ZGVyciwgIiAgICBTdHJlYW0gZGVidWcg
bWVzc2FnZXMgZnJvbSB3ZWJwdXNoZFxuIik7CiAgICAgZnByaW50ZihzdGRlcnIsICIgIC0tcmVj
b25uZWN0XG4iKTsKQEAgLTc2LDEyICs4MSw3MCBAQCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFB1
c2hNZXNzYWdlRm9yVGVzdGluZz4gcHVzaE1lc3NhZ2VGcm9tQXJndW1lbnRzKE5TRW51bWVyYQog
ICAgIHJldHVybiBtYWtlVW5pcXVlV2l0aG91dEZhc3RNYWxsb2NDaGVjazxQdXNoTWVzc2FnZUZv
clRlc3Rpbmc+KFdURk1vdmUocHVzaE1lc3NhZ2UpKTsKIH0KIAorI2lmIEhBVkUoT1NfTEFVTkNI
RF9KT0IpCitzdGF0aWMgYm9vbCByZWdpc3RlckRhZW1vbldpdGhMYXVuY2hEKFdlYlB1c2hUb29s
OjpQcmVmZXJUZXN0U2VydmljZSBwcmVmZXJUZXN0U2VydmljZSkKK3sKKyAgICAvLyBGb3Igbm93
IHdlYnB1c2h0b29sIG9ubHkga25vd3MgaG93IHRvIGhvc3Qgd2VicHVzaGQgd2hlbiB0aGV5J3Jl
IGluIHRoZSBzYW1lIGRpcmVjdG9yeQorICAgIC8vIGUuZy4gdGhlIGJ1aWxkIGRpcmVjdG9yeSBv
ZiBhIFdlYktpdCBjb250cmlidXRvci4KKyAgICBOU1N0cmluZyAqY3VycmVudEV4ZWN1dGFibGVQ
YXRoID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBleGVjdXRhYmxlUGF0aF07CisgICAgTlNVUkwg
KmN1cnJlbnRFeGVjdXRhYmxlRGlyZWN0b3J5VVJMID0gW1tOU1VSTCBmaWxlVVJMV2l0aFBhdGg6
Y3VycmVudEV4ZWN1dGFibGVQYXRoIGlzRGlyZWN0b3J5Ok5PXSBVUkxCeURlbGV0aW5nTGFzdFBh
dGhDb21wb25lbnRdOworICAgIE5TVVJMICpkYWVtb25FeGVjdXRhYmxlUGF0aFVSTCA9IFtjdXJy
ZW50RXhlY3V0YWJsZURpcmVjdG9yeVVSTCBVUkxCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJ3
ZWJwdXNoZCJdOworCisgICAgaWYgKCFbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZp
bGVFeGlzdHNBdFBhdGg6ZGFlbW9uRXhlY3V0YWJsZVBhdGhVUkwucGF0aF0pIHsKKyAgICAgICAg
TlNMb2coQCJEYWVtb24gZXhlY3V0YWJsZSBkb2VzIG5vdCBleGlzdCBhdCBwYXRoICVAIiwgZGFl
bW9uRXhlY3V0YWJsZVBhdGhVUkwucGF0aCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
CisKKyAgICBjb25zdCBjaGFyKiBzZXJ2aWNlTmFtZSA9IChwcmVmZXJUZXN0U2VydmljZSA9PSBX
ZWJQdXNoVG9vbDo6UHJlZmVyVGVzdFNlcnZpY2U6OlllcykgPyAib3JnLndlYmtpdC53ZWJwdXNo
dGVzdGRhZW1vbi5zZXJ2aWNlIiA6ICJjb20uYXBwbGUud2Via2l0LndlYnB1c2hkLnNlcnZpY2Ui
OworCisgICAgYXV0byBwbGlzdCA9IGFkb3B0TlMoeHBjX2RpY3Rpb25hcnlfY3JlYXRlKG51bGxw
dHIsIG51bGxwdHIsIDApKTsKKyAgICB4cGNfZGljdGlvbmFyeV9zZXRfc3RyaW5nKHBsaXN0Lmdl
dCgpLCAiX01hbmFnZWRCeSIsICJ3ZWJwdXNodG9vbCIpOworICAgIHhwY19kaWN0aW9uYXJ5X3Nl
dF9zdHJpbmcocGxpc3QuZ2V0KCksICJMYWJlbCIsICJvcmcud2Via2l0LndlYnB1c2h0ZXN0ZGFl
bW9uIik7CisgICAgeHBjX2RpY3Rpb25hcnlfc2V0X2Jvb2wocGxpc3QuZ2V0KCksICJMYXVuY2hP
bmx5T25jZSIsIHRydWUpOworICAgIHhwY19kaWN0aW9uYXJ5X3NldF9ib29sKHBsaXN0LmdldCgp
LCAiUm9vdGVkU2ltdWxhdG9yUGF0aCIsIHRydWUpOworCisgICAgeworICAgICAgICBhdXRvIGVu
dmlyb25tZW50VmFyaWFibGVzID0gYWRvcHROUyh4cGNfZGljdGlvbmFyeV9jcmVhdGUobnVsbHB0
ciwgbnVsbHB0ciwgMCkpOworICAgICAgICB4cGNfZGljdGlvbmFyeV9zZXRfc3RyaW5nKGVudmly
b25tZW50VmFyaWFibGVzLmdldCgpLCAiRFlMRF9GUkFNRVdPUktfUEFUSCIsIGN1cnJlbnRFeGVj
dXRhYmxlRGlyZWN0b3J5VVJMLmZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbik7CisgICAgICAgIHhw
Y19kaWN0aW9uYXJ5X3NldF92YWx1ZShwbGlzdC5nZXQoKSwgIkVudmlyb25tZW50VmFyaWFibGVz
IiwgZW52aXJvbm1lbnRWYXJpYWJsZXMuZ2V0KCkpOworICAgIH0KKyAgICB7CisgICAgICAgIGF1
dG8gbWFjaFNlcnZpY2VzID0gYWRvcHROUyh4cGNfZGljdGlvbmFyeV9jcmVhdGUobnVsbHB0ciwg
bnVsbHB0ciwgMCkpOworICAgICAgICB4cGNfZGljdGlvbmFyeV9zZXRfYm9vbChtYWNoU2Vydmlj
ZXMuZ2V0KCksIHNlcnZpY2VOYW1lLCB0cnVlKTsKKyAgICAgICAgeHBjX2RpY3Rpb25hcnlfc2V0
X3ZhbHVlKHBsaXN0LmdldCgpLCAiTWFjaFNlcnZpY2VzIiwgbWFjaFNlcnZpY2VzLmdldCgpKTsK
KyAgICB9CisgICAgeworICAgICAgICBhdXRvIHByb2dyYW1Bcmd1bWVudHMgPSBhZG9wdE5TKHhw
Y19hcnJheV9jcmVhdGUobnVsbHB0ciwgMCkpOworI2lmIFBMQVRGT1JNKE1BQykKKyAgICAgICAg
eHBjX2FycmF5X3NldF9zdHJpbmcocHJvZ3JhbUFyZ3VtZW50cy5nZXQoKSwgWFBDX0FSUkFZX0FQ
UEVORCwgZGFlbW9uRXhlY3V0YWJsZVBhdGhVUkwuZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKTsK
KyNlbHNlCisgICAgICAgIHhwY19hcnJheV9zZXRfc3RyaW5nKHByb2dyYW1Bcmd1bWVudHMuZ2V0
KCksIFhQQ19BUlJBWV9BUFBFTkQsIGRhZW1vbkV4ZWN1dGFibGVQYXRoVVJMLnBhdGguZmlsZVN5
c3RlbVJlcHJlc2VudGF0aW9uKTsKKyNlbmRpZgorICAgICAgICB4cGNfYXJyYXlfc2V0X3N0cmlu
Zyhwcm9ncmFtQXJndW1lbnRzLmdldCgpLCBYUENfQVJSQVlfQVBQRU5ELCAiLS1tYWNoU2Vydmlj
ZU5hbWUiKTsKKyAgICAgICAgeHBjX2FycmF5X3NldF9zdHJpbmcocHJvZ3JhbUFyZ3VtZW50cy5n
ZXQoKSwgWFBDX0FSUkFZX0FQUEVORCwgc2VydmljZU5hbWUpOworICAgICAgICB4cGNfZGljdGlv
bmFyeV9zZXRfdmFsdWUocGxpc3QuZ2V0KCksICJQcm9ncmFtQXJndW1lbnRzIiwgcHJvZ3JhbUFy
Z3VtZW50cy5nZXQoKSk7CisgICAgfQorCisgICAgYXV0byBqb2IgPSBhZG9wdE5TKFtbT1NMYXVu
Y2hkSm9iIGFsbG9jXSBpbml0V2l0aFBsaXN0OnBsaXN0LmdldCgpXSk7CisgICAgTlNFcnJvciAq
ZXJyb3IgPSBuaWw7CisgICAgW2pvYiBzdWJtaXQ6JmVycm9yXTsKKworICAgIGlmIChlcnJvcikg
eworICAgICAgICBOU0xvZyhAIkVycm9yIHNldHRpbmcgdXAgc2VydmljZTogJUAiLCBlcnJvcik7
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKyNl
bmRpZiAvLyAjaWYgSEFWRShPU19MQVVOQ0hEX0pPQikKKwogaW50IG1haW4oaW50LCBjb25zdCBj
aGFyICoqKQogewogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWQoKTsKIAogICAgIGF1dG8g
cHJlZmVyVGVzdFNlcnZpY2UgPSBXZWJQdXNoVG9vbDo6UHJlZmVyVGVzdFNlcnZpY2U6OlllczsK
ICAgICBhdXRvIHJlY29ubmVjdCA9IFdlYlB1c2hUb29sOjpSZWNvbm5lY3Q6Ok5vOworICAgIGJv
b2wgaG9zdCA9IGZhbHNlOwogICAgIHN0ZDo6b3B0aW9uYWw8V2ViUHVzaFRvb2w6OkFjdGlvbj4g
YWN0aW9uOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxQdXNoTWVzc2FnZUZvclRlc3Rpbmc+IHB1c2hN
ZXNzYWdlOwogCkBAIC0xMDEsNiArMTY0LDEwIEBAIGludCBtYWluKGludCwgY29uc3QgY2hhciAq
KikKICAgICAgICAgICAgICAgICBhY3Rpb24gPSBXZWJQdXNoVG9vbDo6QWN0aW9uOjpTdHJlYW1E
ZWJ1Z01lc3NhZ2VzOwogICAgICAgICAgICAgZWxzZSBpZiAoW2FyZ3VtZW50IGlzRXF1YWxUb1N0
cmluZzpAIi0tcmVjb25uZWN0Il0pCiAgICAgICAgICAgICAgICAgcmVjb25uZWN0ID0gV2ViUHVz
aFRvb2w6OlJlY29ubmVjdDo6WWVzOworI2lmIEhBVkUoT1NfTEFVTkNIRF9KT0IpCisgICAgICAg
ICAgICBlbHNlIGlmIChbYXJndW1lbnQgaXNFcXVhbFRvU3RyaW5nOkAiLS1ob3N0Il0pCisgICAg
ICAgICAgICAgICAgaG9zdCA9IHRydWU7CisjZW5kaWYKICAgICAgICAgICAgIGVsc2UgaWYgKFth
cmd1bWVudCBpc0VxdWFsVG9TdHJpbmc6QCItLXB1c2giXSkgewogICAgICAgICAgICAgICAgIHB1
c2hNZXNzYWdlID0gcHVzaE1lc3NhZ2VGcm9tQXJndW1lbnRzKGVudW1lcmF0b3IpOwogICAgICAg
ICAgICAgICAgIGlmICghcHVzaE1lc3NhZ2UpCkBAIC0xMTUsMTEgKzE4MiwxNiBAQCBpbnQgbWFp
bihpbnQsIGNvbnN0IGNoYXIgKiopCiAgICAgaWYgKCFhY3Rpb24gJiYgIXB1c2hNZXNzYWdlKQog
ICAgICAgICBwcmludFVzYWdlQW5kVGVybWluYXRlKEAiTm8gYWN0aW9uIHByb3ZpZGVkIik7CiAK
KyNpZiBIQVZFKE9TX0xBVU5DSERfSk9CKQorICAgIGlmIChob3N0ICYmICFyZWdpc3RlckRhZW1v
bldpdGhMYXVuY2hEKHByZWZlclRlc3RTZXJ2aWNlKSkKKyAgICAgICAgcHJpbnRVc2FnZUFuZFRl
cm1pbmF0ZShAIlVuYWJsZSB0byBpbnN0YWxsIHBsaXN0IHRvIGhvc3QgdGhlIHNlcnZpY2UiKTsK
KyNlbmRpZgorCiAgICAgYXV0byBjb25uZWN0aW9uID0gV2ViUHVzaFRvb2w6OkNvbm5lY3Rpb246
OmNyZWF0ZSgqYWN0aW9uLCBwcmVmZXJUZXN0U2VydmljZSwgcmVjb25uZWN0KTsKICAgICBpZiAo
cHVzaE1lc3NhZ2UpCiAgICAgICAgIGNvbm5lY3Rpb24tPnNldFB1c2hNZXNzYWdlKFdURk1vdmUo
cHVzaE1lc3NhZ2UpKTsKIAotICAgIGNvbm5lY3Rpb24tPmNvbm5lY3RUb1NlcnZpY2UoKTsKKyAg
ICBjb25uZWN0aW9uLT5jb25uZWN0VG9TZXJ2aWNlKGhvc3QgPyBXZWJQdXNoVG9vbDo6V2FpdEZv
clNlcnZpY2VUb0V4aXN0OjpObyA6IFdlYlB1c2hUb29sOjpXYWl0Rm9yU2VydmljZVRvRXhpc3Q6
Olllcyk7CiAKICAgICBDRlJ1bkxvb3BSdW4oKTsKICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhMGZiOWQ1M2ZjN2MuLjNj
MWY1ZThmMWVlYyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTEyLTEzICBCcmFkeSBFaWRzb24gIDxiZWlkc29u
QGFwcGxlLmNvbT4KKworICAgICAgICBUZWFjaCB3ZWJwdXNodG9vbCB0byByZWdpc3RlciBhbmQg
Imhvc3QiIHRoZSBkYWVtb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzQyNjUKKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJQdXNoRGFlbW9uLm1t
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6c2hvdWxkU2V0dXBXZWJQdXNoRCk6IEFkZCBhIGNv
bW1hbmQgbGluZSBhcmd1bWVudCB0byBza2lwIHRoZSAiaW5zdGFsbCB0aGUgZGFlbW9uIiBzdGVw
LAorICAgICAgICAgIHNvIGFuIGVuZ2luZWVyIGNhbiBoYW5kbGUgdGhhdCBwYXJ0IHRoZW1zZWx2
ZXMuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpzZXRVcFRlc3RXZWJQdXNoRCk6CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpjbGVhblVwVGVzdFdlYlB1c2hEKToKKwogMjAyMS0xMi0xMCAgQ29t
bWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCwgcmV2ZXJ0aW5nIHIyODY4MzYuCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1dlYlB1c2hEYWVtb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1dlYlB1c2hEYWVtb24ubW0KaW5kZXggZDY2ZTQ0MGI2M2Q2Li5hMDFm
YjYwOTBjODIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvV2ViUHVzaERhZW1vbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1dlYlB1c2hEYWVtb24ubW0KQEAgLTEyNSw4ICsxMjUsMjQgQEAgc3RhdGljIFJldGFp
blB0cjxOU0RpY3Rpb25hcnk+IHRlc3RXZWJQdXNoRGFlbW9uUExpc3QoTlNVUkwgKnN0b3JhZ2VM
b2NhdGlvbikKIAogI2VuZGlmIC8vIEhBVkUoT1NfTEFVTkNIRF9KT0IpCiAKK3N0YXRpYyBib29s
IHNob3VsZFNldHVwV2ViUHVzaEQoKQoreworICAgIHN0YXRpYyBib29sIHNob3VsZFNldHVwID0g
dHJ1ZTsKKyAgICBzdGF0aWMgZGlzcGF0Y2hfb25jZV90IG9uY2VUb2tlbjsKKyAgICBkaXNwYXRj
aF9vbmNlKCZvbmNlVG9rZW4sIF57CisgICAgICAgIE5TQXJyYXk8TlNTdHJpbmcgKj4gKmFyZ3Vt
ZW50cyA9IFtbTlNQcm9jZXNzSW5mbyBwcm9jZXNzSW5mb10gYXJndW1lbnRzXTsKKyAgICAgICAg
aWYgKFthcmd1bWVudHMgY29udGFpbnNPYmplY3Q6QCItLW5vLXdlYnB1c2hkIl0pCisgICAgICAg
ICAgICBzaG91bGRTZXR1cCA9IGZhbHNlOworICAgIH0pOworCisgICAgcmV0dXJuIHNob3VsZFNl
dHVwOworfQorCiBzdGF0aWMgTlNVUkwgKnNldFVwVGVzdFdlYlB1c2hEKCkKIHsKKyAgICBpZiAo
IXNob3VsZFNldHVwV2ViUHVzaEQoKSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKwogICAgIE5TRmls
ZU1hbmFnZXIgKmZpbGVNYW5hZ2VyID0gW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdOwog
ICAgIE5TVVJMICp0ZW1wRGlyID0gW05TVVJMIGZpbGVVUkxXaXRoUGF0aDpbTlNUZW1wb3JhcnlE
aXJlY3RvcnkoKSBzdHJpbmdCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJXZWJQdXNoRGFlbW9u
VGVzdCJdIGlzRGlyZWN0b3J5OllFU107CiAgICAgTlNFcnJvciAqZXJyb3IgPSBuaWw7CkBAIC0x
NDgsNiArMTY0LDkgQEAgc3RhdGljIE5TVVJMICpzZXRVcFRlc3RXZWJQdXNoRCgpCiAKIHN0YXRp
YyB2b2lkIGNsZWFuVXBUZXN0V2ViUHVzaEQoTlNVUkwgKnRlbXBEaXIpCiB7CisgICAgaWYgKCFz
aG91bGRTZXR1cFdlYlB1c2hEKCkpCisgICAgICAgIHJldHVybjsKKwogICAgIGtpbGxGaXJzdElu
c3RhbmNlT2ZEYWVtb24oQCJ3ZWJwdXNoZCIpOwogCiAgICAgaWYgKCFbW05TRmlsZU1hbmFnZXIg
ZGVmYXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6dGVtcERpci5wYXRoXSkKQEAgLTI0Miw3
ICsyNjEsNyBAQCBzdGF0aWMgVmVjdG9yPHVpbnQ4X3Q+IGVuY29kZVN0cmluZyhjb25zdCBTdHJp
bmcmIG1lc3NhZ2UpCiB9CiAKIC8vIEZJWE1FOiBSZS1lbmFibGUgdGhpcyB0ZXN0IG9uIE1hYyBv
bmNlIHdlYmtpdC5vcmcvMjMyODU3IGlzIHJlc29sdmVkLgotI2lmIFBMQVRGT1JNKE1BQykKKyNp
ZiBQTEFURk9STShNQUMpICYmICFVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogVEVTVChXZWJQdXNo
RCwgRElTQUJMRURfQmFzaWNDb21tdW5pY2F0aW9uKQogI2Vsc2UKIFRFU1QoV2ViUHVzaEQsIEJh
c2ljQ29tbXVuaWNhdGlvbikKQEAgLTMyMSw3ICszNDAsNyBAQCBzdGF0aWMgY29uc3QgY2hhciog
bWFpbkJ5dGVzID0gUiJXRUJQVVNIUkVTT1VSQ0UoCiApV0VCUFVTSFJFU09VUkNFIjsKIAogLy8g
RklYTUU6IFJlLWVuYWJsZSB0aGlzIHRlc3Qgb24gTWFjIG9uY2Ugd2Via2l0Lm9yZy8yMzI4NTcg
aXMgcmVzb2x2ZWQuCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JNKE1BQykgJiYgIVVT
RShBUFBMRV9JTlRFUk5BTF9TREspCiBURVNUKFdlYlB1c2hELCBESVNBQkxFRF9QZXJtaXNzaW9u
TWFuYWdlbWVudCkKICNlbHNlCiBURVNUKFdlYlB1c2hELCBQZXJtaXNzaW9uTWFuYWdlbWVudCkK
QEAgLTQ1NCw3ICs0NzMsNyBAQCBzdGF0aWMgdm9pZCBjbGVhcldlYnNpdGVEYXRhU3RvcmUoV0tX
ZWJzaXRlRGF0YVN0b3JlICpzdG9yZSkKIH0KIAogLy8gRklYTUU6IFJlLWVuYWJsZSB0aGlzIHRl
c3Qgb24gTWFjIG9uY2Ugd2Via2l0Lm9yZy8yMzI4NTcgaXMgcmVzb2x2ZWQuCi0jaWYgUExBVEZP
Uk0oTUFDKQorI2lmIFBMQVRGT1JNKE1BQykgJiYgIVVTRShBUFBMRV9JTlRFUk5BTF9TREspCiBU
RVNUKFdlYlB1c2hELCBESVNBQkxFRF9IYW5kbGVJbmplY3RlZFB1c2gpCiAjZWxzZQogVEVTVChX
ZWJQdXNoRCwgSGFuZGxlSW5qZWN0ZWRQdXNoKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>